Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tmruisma/ohj1ht
  • eljuarha/ohj1ht
  • alvejmsu/ohj1ht
  • tuvoo/ohj1ht
  • annelinu/ohj1ht
  • malonen/ohj1ht
  • jphkauxs/ohj1ht
  • rarouvin/vaiskin-kauppapeli
  • ansovalk/ohj1ht
  • tkleinon/ohj1ht
  • tmraassy/ohj1ht
  • fmksepps/ohj1ht
  • kosksaka/ohj1ht
  • aatjarvs/ohj1ht
  • segersls/ohj1ht
  • peropami/ohj1ht
  • jylhasmy/ohj1ht
  • suomiejs/ohj1ht
  • ojanpele/ohj1ht
  • oeppulkk/ohj1ht
  • pulliami/ohj1ht
  • lemakinn/ohj1ht
  • lappkvuu/ohjelmointi-1-ht-1
  • misutuom/ohj1ht
  • vivclaje/harkkatyo
  • kohelasa/ohj1ht
  • tulehtol/ohj-1-ht-2023
  • otoskinn/ohj1ht
  • karossi/ohj1ht
  • anttlaol/ohj1ht
  • autioans/ohj1ht
  • vjokine/ohjelmointi-1-kurssin-harkkapeli
  • viempaas/ohj1ht
  • jjikouyz/ohj1ht
  • pejuuso/ohj1ht
  • ideljako/ohj1ht
  • juutirls/ohj1ht
  • nivagadd/ohj1ht
  • elvivihe/ohj1ht
  • tie/ohj1/2023k/ohj1ht
  • aruokane/ohj1ht
  • nimirich/ohj1ht
  • alarnika/ohj1ht
  • viheijo/ohj1ht
  • esshelkr/ohj1ht
  • tttkanka/ohjelmointi-1-harjoitustyo
  • jmporras/ohj1ht
  • sernopet/ohj1ht
  • alnikupa/ohj1ht
  • kamarama/ohj1ht
  • pakakata/ohj1ht
  • sorjonmi/ohj1ht
  • silimapa/ohj1ht
  • jatirkko/ohj1ht
  • jsundelu/ohj1ht
  • maerlepo/ohj1ht
  • korhoovy/ohj1ht
  • partanji/ohj1ht
  • amheikkz/ohj1ht
  • koskinnm/ohj1ht
  • pehaline/ohj1ht
  • svhyvaos/ohj1ht
  • tetutaim/ohj1ht
  • alaluuop/ohj1ht
  • veijhrxz/ohj1ht
  • anmatala/ohjelmointi-1-harjoitustyo
  • anidmapo/ohj1ht
  • ttipoiko/ohj1ht
  • pyhalavh/ohj1ht
  • jemaijal/ohj1ht
  • joanurmi/ohj1ht
  • eemaelsa/ohj1ht
  • mijoutri/ohj1ht
  • ijsalmin/ohj1ht
  • saimaahu/ohj1ht
  • annkriau/ohj1ht
  • mkhirvon/ohj1ht
  • uttija/ohj1ht
  • mikkolto/ohj1ht
  • meakorho/ohj1ht
  • laaksoel/ohj1ht
  • mholammi/ohj1ht
  • krrekahk/ohj1ht
  • wistnest/ohj1ht
  • arhesant/arttu-s-ohj-1-peli
  • ihakalel/ohj1ht
  • ijaslaii/ohj1ht
  • veosvuol/ohj1ht
  • saarelee/ohj-1-ht-o
  • aevantti/ohj1ht
  • akruth/ohj1ht
  • idjupirh/ohj1ht
  • cgmlilja/ohj1ht
  • pojujoen/ohj1ht
  • ssfrom/ohj1ht
  • heinonpe/ohj1ht
  • viitanti/ohj1ht
  • lehtolts/ohj1ht
  • galetas/ohj1ht
  • dikogalu/ohj1ht
  • wahesale/ohj1ht
  • tepesimo/ohj1ht
  • ssapakys/ohj1ht
  • vestmine/ohj1ht
  • dooleyy/ohj1ht
  • vicdavfa/ohj1ht
  • kalloupe/ohj1ht
  • katajaam/ohj1ht
  • aransjos/ohj1ht
  • kaahyton/ohj1ht
  • jarvluee/ohj1ht
  • joaframi/ohj1ht
  • saiannka/ohj1ht
  • sasumyrs/ohj-1-ht-2023
  • jumavehi/ohj-1-ht-k-23
  • juhahuov/ohj1ht
  • immoneth/ohj-1-ht-thomas-immonen
  • rimijarv/ohj1ht
  • ponkayy/ohj1ht
  • tiainess/ohj1ht
  • setkinnu/ohj1ht
  • vvkeinan/ohj1ht
  • jelavonv/ohj1ht
  • haukjohe/ohj1ht
  • jumavais/ohj1ht
  • esmajoki/ohj1ht
  • minkjmzy/ohj1ht
  • jaahwiih/ohj1ht
  • maalvirt/ohj1ht
  • tttikkan/ohj1ht
  • kihedema/ohj1ht
  • nipeniem/ohj1ht
  • saaraijm/ohj1ht
  • roalsuvi/ohj1ht
  • sjkoskel/ohj1ht
  • hsjkulma/hannelen-harjoitustyo-ohj-1
  • mitaniem/ohj1ht
  • ahiekkan/ohj1ht
  • nmpuskzv/ohj-1-ht
  • wwwmolqo/ohj1ht
  • juntjuii/ohj1ht
  • santurun/ohj1ht
  • ettalaes/ohj-1-ht
  • hairjarv/ohj1ht
  • jjbergfo/ohj1ht
  • lehtikmi/ohj1ht
  • sianpapa/ohj1ht
  • aaperttu/tipitsi
  • tie/ohj1/2024k/ohj1ht
  • hesalmuu/ohj1ht
  • erkkaoxs/ohj1ht
  • temhints/ohj1ht
  • bekrnybe/ohj-1-ht-beata-otto
  • sawakorp/ohj1ht
  • saarinan/ohj1ht
  • kronjoma/ohj1ht
  • otjolyyt/ohj1ht-otjolyyt
  • tiantaha/ohj1ht
  • krislima/ohj1ht
  • rauhulil/suunnitelma
  • jutasier/ohj1ht
  • areeheki/ohj1ht
  • lausofla/ohj-1-ht
  • vemahaka/ohj1ht
  • suurnaat/ohj1ht
  • jakaraut/ohj1ht
  • jesupalo/ohj1ht
  • ferin/ohj1ht
  • annpauko/ohj1ht
  • npfriman/ohj1ht
  • kauppmsx/ohj1ht
  • vilaleka/ohj1ht
  • rohekokk/ohj1ht
  • roiirera/ohj1ht
  • jakinnun/ohj1ht
  • tormsu/titanic
  • saukkota/ohj1ht
  • iinpitka/ohj1ht
  • samalauk/ohj1ht
  • neemjaak/ohj1ht
  • mikkonhm/ohj1ht
  • hietmaem/ohj1ht
  • skytasuz/skytta-harjoitustyo-ohj-1-kevat
  • ylonmami/ohj1ht
  • rojunatu/ohj1ht
  • niemkeys/ohj1ht
  • korhoajx/ohj1ht
  • jjrsavol/ohj1ht
  • jowinoke/ohj1ht
  • hasemajo/ohj1ht
  • pinsofhe/ohj1ht
  • peltonla/ohj1ht
  • hamaot/ohj1ht
  • kettunko/ohj1ht
  • ansammal/ohj1ht
  • lxcevrhh/ohj1ht
  • niemhizz/ohj1ht
  • jumakemp/ohj1ht
  • vmahonen/ohj-1-ht-veeti-ahonen
  • mamahank/ohj1ht
  • ajehepol/ohj1ht
  • sisverve/ohj1ht
  • samapeke/ohj1ht
  • mejniemi/ohj-1-peli
  • janjuhni/ohj1ht
  • poyhontj/ohj1ht
  • valimasj/orginal-matopeli
  • adaoliro/ohj1ht
  • ejlahti/ohj1ht
  • iileskys/ohj1ht
  • juuariju/ohj-1-ht
  • eetuoril/ohj1ht
  • ebkaariv/ohj1ht
  • mnarhi/ohj1ht
  • peltsaxs/ohj1ht
  • tkoivisx/ohj1ht
  • eovvaris/ohj-1-ht-1
  • heilauma/ohj1ht
  • mmuhonen/ohj1ht
  • leevilha/ohj1ht
  • jurvidan/ohj1ht
  • iuteitti/ilonan-harjoitustyo
  • sinkkoja/ohj1ht
  • koivuaam/ohj1ht
  • jimsaixv/salimake
  • ihalaiv/ohj1ht
  • sellmmv/projekti
  • mimatasi/ohj1ht
  • sakapusa/harkkatyo
  • annkerki/ohj1ht
  • sabevaha/ohjelmointi-1-kurssin-peli
  • alnelima/ohj1ht
  • kijoperk/ohj1ht
  • tlelakan/ohj1ht
  • ojtorppa/ohj1ht
  • sutinele/ohj1ht
  • mhjlauyy/ohj1ht
  • tidentou/ohj-1-ht
  • akpameka/ohj1ht
  • nielraut/ohj1ht
  • jomimati/ohj1ht
  • alopaate/ohj1ht
  • niptunwu/ohj1ht
  • lihiauka/ohj1ht
  • kekuvaja/ohj1ht
  • salolase/bossikasi
  • venipiil/ohj1ht
  • rantalvo/ohj1ht
  • joveheko/raekuuro
  • vivakork/ohj1ht
  • nikoskhy/ohj1ht
  • jermatkr/suunnitelmamdks
  • jaempelt/ohj1ht
  • jjhonkuu/ohj1ht
  • rautpmxt/ohj1ht
  • mmoraru/escape-from-hell
  • espakolh/ohj1ht
  • kaotkurj/ohj1ht
  • niemeiws/ohj-1-ht
  • sisavart/ohj1ht
  • sivejukl/ohj1ht
  • panjuhle/ohj1ht
  • rtaalikk/ohj1ht
  • hesalone/ohj1ht
  • topeliku/ohj1ht
  • konttijm/ohj1ht
  • llaung/ohj1ht
  • jsnikkin/ohj1ht
  • spicjrxz/ohj1ht
  • kiikriha/ohj1ht
  • juhyytin/ohj1ht
  • jajuruti/jajuruti
  • vejovile/ohj1ht
  • jjoensyu/ohj1ht
  • hjnirhax/ohj1ht
  • nobekail/ohj1ht
  • wendjkvt/ohj1ht
  • aapotska/platformer
  • lamminm/ohj1ht
  • garammtu/platformerpeli
  • apeshhhh/ohj1ht
  • tototuru/ohj1ht
  • tejupasa/ohj1ht
  • amelhadd/ohj1ht
  • heminyrh/ohj1ht
  • rehirvel/ohj1ht
  • ilfrjohe/ohj1ht
  • vkarppaz/scrape-poster
  • rikantos/ohj1ht
  • jenjulha/ohj1ht
  • miimatpa/ohj1ht
  • julsadka/ohj1ht
  • gozavoro/ohj1ht
  • viljanta/ohj1ht
  • kostamol/ohj1ht
  • ylivezu/ohj1ht
  • pjsydanm/ohj1ht
  • suvleean/ohj1ht
  • diivysei/ohjelmointi-1-harjoitustyo
  • tapiopp/ohj1ht
  • kkpyykko/ohj1ht
  • summanwe/ohj1ht
  • lpuraney/ohj1ht
  • serimaai/ohj1ht
  • tarkkael/ohj1ht
  • eljoholt/ohj1ht
  • olenkail/ohj1ht
  • alkarant/harjoitustyo
  • sajovann/ohj1ht
  • vivestma/ohj1ht
  • sodenrzt/ohj1ht
  • sssuonyy/ohj1ht
  • salmiene/ohj1ht
  • vepsanew/ohj1ht
  • aslimma/ohj1ht
  • vvimmone/ohjelmointi-1-harjoitustyo
  • hejohyde/ohjelmointi-1-harjoitustyo-hh
  • phjhaapa/ohj1ht
  • makyolaa/ohj1ht
  • mipaflin/harjoitustyo
  • juutijos/ohj1ht
  • kalini/ohj1ht
  • jaaronur/harjoitustyo
  • tie/ohj1/2025k/ohj1ht
  • teamakin/ohj1ht
  • jylhali/ohj1ht
  • ollilaas/ohj1ht
  • jkasper/ohj1ht
  • kimakiiv/ohj1ht
  • hevianes/ohj-1-ht-1
  • xwusxjid/harjoitustyo-ohj-1
  • miiseppa/ohj1ht
  • miolnauk/ohj1ht
  • karjulto/ohj1ht
  • leeaable/ohj1ht
  • emraiha/ohj1ht
  • idriemla/ohj1ht
  • mkpsoini/ohj1ht
  • lewejoen/ohj1ht
  • blanilad/ohj1ht
  • matusora/ohj1ht
  • olsonasu/ohj1ht
  • puustipa/ohj-1-reaktiopeli
  • moishe/ohj1ht
  • keleppal/ohj1ht
  • aiesmati/ohj1ht
  • misajuha/ohj1ht
  • aaelriih/ohj1ht
  • misokopo/ohj1ht
  • iblagode/ohj1ht
  • kaaelmke/ohj1ht
  • iihuuton/ohj-1-ht
  • elmapurs/ohj-1-peli
  • hankssxs/ohj1ht
  • aisoantt/ohj1ht
  • jjsaukks/ohj1ht
  • emmidaka/ohj1ht
  • lohisajo/ohj1ht
  • jlahdeww/ohj1ht
  • tepekyla/ohj1ht
  • alaxgroe/ohj1ht
  • mkrajazz/ohj1ht
  • hihehuis/ohj1ht
  • sasisiti/ohj1ht
  • tshalme/ohj1ht
  • eskrelry/ohj1ht
  • haleriak/ohj1ht
  • kerakoju/ohj1ht
  • elainnas/peli
  • sinsushi/ohj1ht
  • otemhann/ohj1ht
  • eepetaka/ohj1ht
  • ieepirzy/ohj-1-ht
  • onmahela/ohj1ht
  • jupakraa/ohj1ht
  • rajatota/ohj1ht
  • sasaable/ohj1ht
  • jupakraa/harjoitustyo-1
  • jahalmtv/ohj1ht
  • joalvihe/ohj1ht
  • joeehimm/ohj1ht
  • anvasavi/ohj1ht
  • mhmniskx/ohj1ht
  • rintalsa/ohj1ht
  • veetoivo/ohj1ht
  • rtmatilt/Swatteri
  • maukotos/blackjack
  • karppir/ohj1ht
  • tammtu/ohj1ht
389 results
Show changes
Commits on Source (9)
Showing
with 531 additions and 19 deletions
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/contentModel.xml
/modules.xml
/.idea.DebugKoe.iml
/projectSettingsUpdater.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
EndGlobalSection
EndGlobal
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/projectSettingsUpdater.xml
/modules.xml
/contentModel.xml
/.idea.KelaCombat.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KelaCombatTesti", "KelaCombatTesti\KelaCombatTesti.csproj", "{85334A5C-65F8-4C6E-B1E0-43737B0DF128}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{85334A5C-65F8-4C6E-B1E0-43737B0DF128}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{85334A5C-65F8-4C6E-B1E0-43737B0DF128}.Debug|Any CPU.Build.0 = Debug|Any CPU
{85334A5C-65F8-4C6E-B1E0-43737B0DF128}.Release|Any CPU.ActiveCfg = Release|Any CPU
{85334A5C-65F8-4C6E-B1E0-43737B0DF128}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
KelaCombat/KelaCombatTesti/Content/Kelabotti.png

5.03 KiB

KelaCombat/KelaCombatTesti/Content/Pelaaja.png

2.43 KiB

KelaCombat/KelaCombatTesti/Content/kentta1.png

573 B

KelaCombat/KelaCombatTesti/Content/tiiliseina.png

1.17 KiB

using System;
using System.Collections.Generic;
using System.Net.Mime;
using System.Security.Cryptography;
using FarseerPhysics.Dynamics.Joints;
using Jypeli;
using Jypeli.Assets;
using Jypeli.Controls;
using Jypeli.Widgets;
using Silk.NET.SDL;
using Color = Jypeli.Color;
namespace KelaCombatTesti;
/// @author Sakari
/// @version 17.02.2025
/// <summary>
///
/// </summary>
public class KelaCombatTesti : PhysicsGame
{
PlatformCharacter pelaaja;
PhysicsObject Pesismaila;
PhysicsObject Viinapullo;
PlatformCharacter Kelabotti;
private Image TiiliseinaKuva = LoadImage("tiiliseina");
Image KelabottiKuva = LoadImage("Kelabotti");
Image PelaajaKuva = LoadImage("Pelaaja.png");
List<PhysicsObject> spawnipaikat = new List<PhysicsObject>(); // tässä listataan mahdolliset paikat, johon kelabotti voi spawnaa. Lista pitää sisällään spawnereita.
//IntMeter edustaa muuttujia, jotka voivat kasvaa tai vähentyä tietyllä tavalla
IntMeter pisteet; //pelaajan keräämät pisteet
DoubleMeter pelaajanelamaLaskuri; //pelaajan elämät
IntMeter Kelabotinelamalaskuri; //kelabotin elämät
//Label = tekstielementti, joka näytetään pelissä
Label pisteNaytto; //pisteiden näyttäminen ruudulla
/// <summary>
///
/// </summary>
public override void Begin()
{
LuoKentta();
LuoElamalaskuri();
LuoPistelaskuri(); // Alustetaan pistelaskuri
//Ajastin, joka lisää uuden vihollisen joka 5. sekunti
//kelabotin elämien väheneminen VahingoitaKelabottia aliohjelman mukaisesti
//AddCollisionHandler(Kelabotti, "Pesismaila", VahingoitaKelabottia);
Camera.Follow(pelaaja);
Keyboard.Listen(Key.A, ButtonState.Down, LiikuVasemmalle, null, new Vector());
Keyboard.Listen(Key.D, ButtonState.Down, LiikuOikealle, null, new Vector());
Keyboard.Listen(Key.W, ButtonState.Down, Hyppaa, null, new Vector());
//Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
Keyboard.Listen(Key.Space, ButtonState.Pressed, LuoPesismaila, "", new Vector(90, 10), pelaaja);
void LiikuVasemmalle(Vector vektori)
{
pelaaja.Walk(-120);
}
void LiikuOikealle(Vector vektori)
{
pelaaja.Walk(120);
}
void Hyppaa(Vector vektori)
{
pelaaja.Jump(280.0);
}
}
/// <summary>
/// Tässä luodaan pelikenttä
/// </summary>
void LuoKentta()
{
Level.Background.CreateGradient(Color.DarkGray, Color.Blue);
Gravity = new Vector(0, -1100.0);
// pelissä kentät luodaan piirtämällä pikseleitä. Pikselin väri kuvaa aina jotain tiettyä asiaa kentällä
// ruutu = pikseli
ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta1");
ruudut.SetTileMethod(Color.Lime, LuoPelaaja); //LIME pikseli on pelaaja
ruudut.SetTileMethod(Color.Black, LuoTaso); //MUSTA on tiiliseinää
ruudut.SetTileMethod(Color.Red, LuoKelabottiSpawni); //PUNAISEEN voi spawnaa vihu
ruudut.SetTileMethod(Color.SkyBlue, LuoViinapullo); //VAALEANSNISET on pelaajaa parantavia viinapulloja
ruudut.Execute(80, 80);
Timer.CreateAndStart(5.0, LuoKelabotti);
}
//tämä aliohjelma luo tiili-palikoita, joista kenttä (tällä hetkellä) rakentuu
void LuoTaso(Vector paikka, double leveys, double korkeus)
{
PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
taso.Position = paikka;
taso.CollisionIgnoreGroup = 2;
taso.Color = Color.Gray;
taso.Image = TiiliseinaKuva;
Add(taso);
}
//tämä aliohjelma luo pelaajaa parantavan viinapllon
void LuoViinapullo(Vector paikka, double x, double y)
{
Viinapullo = PhysicsObject.CreateStaticObject(20, 20);
Viinapullo.Position = paikka;
Viinapullo.Color = Color.White;
Viinapullo.Tag = "Viinapullo";
Add(Viinapullo);
}
//tämä aliohjelma luo "haamupalikan" jonka sijaintiin kelabotti myöhemmin luodaan
void LuoKelabottiSpawni(Vector paikka, double leveys, double korkeus)
{
PhysicsObject BottiSpawni = PhysicsObject.CreateStaticObject(leveys, korkeus);
BottiSpawni.Position = paikka;
BottiSpawni.CollisionIgnoreGroup = 1;
BottiSpawni.IsVisible = false;
BottiSpawni.IgnoresGravity = true;
Add(BottiSpawni, -1);
spawnipaikat.Add(BottiSpawni);
}
/// <summary>
/// Aliohjelma, jossa luodaan pelaaja
/// </summary>
/// <param name="x">pelaajan x-koordinaatti</param>
/// <param name="y">pelaajan y-koordinaatti</param>
/// <returns>pelaaja</returns>
void LuoPelaaja(Vector paikka, double x, double y)
{
pelaaja = new PlatformCharacter(50.0, 100.0);
pelaaja.Image = PelaajaKuva;
pelaaja.Mass = 1.0;
pelaaja.Shape = Shape.Rectangle;
pelaaja.Color = Color.Black;
pelaaja.Position = paikka;
pelaaja.CollisionIgnoreGroup = 1;
// Törmäyksen käsittelijä, mitä tapahtuu, kun pelaaja osuu kelabotiin
//Siis pelaajan elämien väheneminen VahnigoitaPelaajaa-aliohjelman mukaisesti
AddCollisionHandler(pelaaja, "Kelabotti", VahingoitaPelaajaa);
AddCollisionHandler(pelaaja, "Viinapullo", ParannaPelaajaa);
AddCollisionHandler(pelaaja, "kappale", VahingoitaPelaajaa);
Add(pelaaja);
}
/// <summary>
/// Aliohjelma, joka luo pelaajalle elämälaskurin ja sen nimen: "Mielenterveys"
/// </summary>
void LuoElamalaskuri()
{
pelaajanelamaLaskuri = new DoubleMeter(100.0);
pelaajanelamaLaskuri.MaxValue = 100;
pelaajanelamaLaskuri.LowerLimit += ElamaLoppui;
ProgressBar elamapalkki = new ProgressBar(150, 18);
elamapalkki.X = Screen.Left + 110;
elamapalkki.Y = Screen.Bottom + 50;
elamapalkki.BindTo(pelaajanelamaLaskuri);
elamapalkki.Color = Color.Red;
elamapalkki.BarColor = Color.Green;
elamapalkki.BorderColor = Color.Black;
Label tekstikentta = new Label(200, 10, "Mielenterveys");
tekstikentta.X = Screen.Left + 100;
tekstikentta.Y = Screen.Bottom + 70;
tekstikentta.Font = new Font(20);
Add(tekstikentta);
Add(elamapalkki);
}
/// <summary>
/// Aliohjelma, joka käsittelee pelaajan kuoleman ja ilmoittaa pelin loppumisen
/// </summary>
void ElamaLoppui()
{
Label Kuolema = new Label(800, 60, "Toimeentulohakemus hylätty.");
Kuolema.Y = 140;
Kuolema.Font = new Font(60);
Kuolema.TextColor = Color.Red;
//Kuolema.Color = Color.Black;
Add(Kuolema);
}
/// <summary>
/// Tässä luodaan uusi fysiikkaolio, Pesismaila
//Tämä toimii pelaajan lyöntinä (samalla määritellään ase.
/// </summary>
/// <param name="koko">Pesismailan koko</param>
/// <param name="pelaaja">kohde, johon Pesismaila liitetään, eli pelaaja</param>
void LuoPesismaila(Vector koko, PlatformCharacter pelaaja)
{
PhysicsObject Pesismaila = new PhysicsObject(koko.X, koko.Y);
Pesismaila.Position = pelaaja.Position + new Vector(80*pelaaja.FacingDirection.GetVector().X, 10);
Pesismaila.CollisionIgnoreGroup = 1;
Pesismaila.Mass = 1;
Pesismaila.Tag = "Pesismaila";
Add(Pesismaila);
Pesismaila.LifetimeLeft = TimeSpan.FromSeconds(0.075);
Pesismaila.IgnoresGravity = true;
//PISTEET ei elämät
AddCollisionHandler(Pesismaila, "Kelabotti", KunVihollinenTuhoutuu);
}
/// <summary>
/// Tämä funktio luo Kelabotti-vihun ja sille annetaan pelaajan seuraamis aivot
/// </summary>
/// <returns>Kelabotti</returns>
void LuoKelabotti()
{
PhysicsObject spawni = spawnipaikat[RandomGen.NextInt(spawnipaikat.Count)];
PlatformCharacter Kelabotti = new PlatformCharacter(80.0, 80.0);
Kelabotti.Color = Color.Orange;
Kelabotti.Image = KelabottiKuva;
Kelabotti.CollisionIgnoreGroup = 3;
Kelabotti.MirrorImage();
Kelabotinelamalaskuri = new IntMeter(5); // Alussa on 5 elämää
Kelabotti.Tag = "Kelabotti";
Kelabotti.Position = spawni.Position;
Kelabotti.Weapon = new AssaultRifle(30, 10);
Kelabotti.Weapon.ProjectileCollision = VahingoitaPelaajaa;
Add(Kelabotti);
FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja);
seuraajanAivot.Speed = 100;
Kelabotti.Brain = seuraajanAivot;
Timer heittoajastin = new Timer();
heittoajastin.Interval = 2;
heittoajastin.Timeout += delegate() { KelabotinAmmus(Kelabotti, "pelaaja"); };
heittoajastin.Start();
// Destroyed-tapahtuma Jypelissä:
// https://tim.jyu.fi/view/kurssit/jypeli/tapahtumat/muuttapahtumat
Kelabotti.Destroyed += heittoajastin.Stop;
}
/// <summary>
/// Aliohjelma, jossa käsitellään Kelabotin heittämä ammus
/// </summary>
/// <param name="heittavaOlio">Kelabotti heittää ammuksen</param>
/// <param name="kohdeolionTunniste">pelaajan tunniste</param>
public void KelabotinAmmus(PhysicsObject heittavaOlio, string kohdeolionTunniste)
{
PhysicsObject kappale = new PhysicsObject(15, 15, Shape.Circle);
//kappale.Hit(new Vector(180,80));
kappale.Hit(new Vector());
kappale.Position = heittavaOlio.Position;
kappale.CollisionIgnoreGroup = 3;
kappale.Color = Color.Silver;
kappale.Tag = "kappale";
kappale.MaximumLifetime = TimeSpan.FromSeconds(8);
Add(kappale);
}
/// <summary>
/// Tämä aliohjelma käsittlee sen, kun pelaaja osuu Kelabottiin
/// </summary>
/// <param name="pelaaja">pelaajahahmo</param>
/// <param name="Kelabotti">pelin vihu; Kelabotti</param>
void VahingoitaPelaajaa(PhysicsObject pelaaja, PhysicsObject kappale)
{
int luku = RandomGen.NextInt(19, 34);
pelaajanelamaLaskuri.Value = pelaajanelamaLaskuri - luku; // Vähentää pelaajan elämää satunnaisen määrän
//MessageDisplay.Add("Osuma! Elämät jäljellä: " + pelaajanelamaLaskuri.Value);
if (pelaajanelamaLaskuri.Value <= 0) //jos laskuri menee nollaan...
{
pelaaja.Destroy(); //...ja pelaaja tuhotaan
//Pesismaila.Destroy();//...myös pesismaila
}
}
//tämä aliohjelma määrää, mitä käy, kun pelaaja koskee viinapulloa
void ParannaPelaajaa(PhysicsObject pelaaja, PhysicsObject Viinapullo)
{
//Viinapullo.CollisionIgnoreGroup = 1;
if (pelaajanelamaLaskuri.Value < 90)
{
//Viinapullo.CollisionIgnoreGroup = 0;
pelaajanelamaLaskuri.Value = pelaajanelamaLaskuri.Value + 20;
Viinapullo.Destroy();
}
}
//tää ei toimi vielä
void VahingoitaKelabottia(PhysicsObject Kelabotti, PhysicsObject Pesismaila)
{
Kelabotinelamalaskuri.Value--; // Vähentää kelabotin elämää yhdellä
if (Kelabotinelamalaskuri.Value <= 0) //jos laskuri menee nollaan...
{
Kelabotti.Destroy(); //...ja kelabotti tuhotaan
}
}
/// <summary>
/// Luo pistelaskurin pisteille, joita saa kun hakkaa kelabotteja
/// </summary>
void LuoPistelaskuri()
{
Label opintoNopat = new Label(150, 50, "Opintonopat:");
opintoNopat.X = Screen.Left + 100;
opintoNopat.Y = Screen.Bottom + 93;
opintoNopat.Font = new Font(20);
opintoNopat.TextColor = Color.Black;
Add(opintoNopat);
pisteet = new IntMeter(0); // Aloitetaan nollasta
pisteNaytto = new Label();
pisteNaytto.X = Screen.Left + 170;
pisteNaytto.Y = Screen.Bottom + 95;
pisteNaytto.TextColor = Color.OrangeRed;
pisteNaytto.Font = new Font(20);
pisteNaytto.BindTo(pisteet); // Päivitetään teksti automaattisesti
Add(pisteNaytto);
}
/// <summary>
/// Käsittelee kelabotin tuhoamisen ja antaa siitö pisteitä
/// </summary>
/// <param name="pelaaja">pelaajahahmo</param>
/// <param name="kelabotti">pelin vihu; Kelabotti</param>
void KunVihollinenTuhoutuu(PhysicsObject pelaaja, PhysicsObject kelabotti)
{
pisteet.Value += 100; // Lisää esim. 100 pistettä, kun botti tuhotaan
kelabotti.Destroy(); // Poistaa botin näytöltä
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jypeli.NET" Version="11.*"/>
<PackageReference Include="Jypeli.FarseerPhysics.NET" Version="2.*"/>
</ItemGroup>
<ItemGroup>
<None Update="KelaCombatkuvat\Pelaaja.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Pelaaja.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Kelabotti.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\kentta1.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Content\tiiliseina.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#endregion
namespace KelaCombatTesti
{
/// <summary>
/// The main class.
/// </summary>
public static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
using var game = new KelaCombatTesti();
game.Run();
}
}
}
\ No newline at end of file
suunnitelma/KelaCombat.png

11.1 KiB

suunnitelma/esimerkkikuva.png

9.92 KiB

# Harjoitustyön suunnitelma
(Täydennä oman pelisi tiedot tähän tiedostoon muokkaamalla
tiedostoa tekstieditorissa. Käytä [Markdown-syntaksia](https://about.gitlab.com/handbook/markdown-guide/).
Poista sitten *kaikki* suluilla merkityt ohjetekstit.)
## Tietoja
Tekijä: (Etunimi Sukunimi)
Tekijät: Sakari Hanki ja Salla Laine
Työ git-varaston osoite: <https://gitlab.jyu.fi/anlakane/ohj1ht> (*Korvaa* tämä osoite oman git-varastosi osoitteella)
Työ git-varaston osoite: <https://gitlab.jyu.fi/hankssxs/ohj1ht>
Pelin nimi: (Nimi)
Pelin nimi: Kela Combat: Fight for the Opintonopat
Pelialusta: Windows/macOS/Linux (Valitse alusta)
Pelialusta: Windows
Pelaajien lukumäärä: 1/2/3/4 (Valitse pelaajien lukumäärä)
Pelaajien lukumäärä: 1
## Pelin tarina
(Pelin tarina.)
Opiskelija hakkaa kelabotteja
## Pelin idea ja tavoitteet
(Pelin idea ja tavoitteet.)
Pelin ideana on hankkia Opintonoppia hakkaamalla kelabotteja pesismailalla. Pelissä ohjataan tikkuhenkilöä ja pelissä edetään pääasiassa x-suunnassa. Kentän läpäisee, kun on kerännyt tarpeeksi opintonoppia. Kelabotit yrittävät lyödä pelaajaa takaisin, ja pelaaja voi palauttaa (mielen)tervyspisteitä keräämällä kentällä olevia viinapulloja.
## Hahmotelma pelistä
(Kun olet lisännyt suunnitelmakuvan tähän hakemistoon, linkitä se tähän alle. Alla on esimerkkikuvan linkitys.)
![Esimerkkikuva](esimerkkikuva.png "Esimerkkikuva")
![Esimerkkikuva](KelaCombat.png "Esimerkkikuva pelistä")
## Toteutuksen suunnitelma
Helmikuu
- (Tavoite 1)
- (Tavoite 2)
- (Tavoite 3)
- (Tavoite 1: pelaajahahmon kontrollit)
- (Tavoite 2: eka pelikenttä)
- (Tavoite 3: eka kelabotti)
Maaliskuu
- (Tavoite 1)
- (Tavoite 2)
- (Tavoite 1: Hp mekaniikat ja Opintonoppa-laskuri)
- (Tavoite 2: taistelumekaniikat)
- (Tavoite 3)
Jos aikaa jää
- (Tavoite 1)
- (Tavoite 2)
- (Tavoite 1: animaatiot)
- (Tavoite 2: lisää vihollistyyppejä)
- (Tavoite 3)