diff --git a/DebugKoe/.idea/.idea.DebugKoe/.idea/.gitignore b/DebugKoe/.idea/.idea.DebugKoe/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..1d49a2780978791b0aa718086bbef5e5a0442a59 --- /dev/null +++ b/DebugKoe/.idea/.idea.DebugKoe/.idea/.gitignore @@ -0,0 +1,13 @@ +# 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 diff --git a/DebugKoe/.idea/.idea.DebugKoe/.idea/indexLayout.xml b/DebugKoe/.idea/.idea.DebugKoe/.idea/indexLayout.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b08163cebc50fb3e777eea4881b68fcebc10590 --- /dev/null +++ b/DebugKoe/.idea/.idea.DebugKoe/.idea/indexLayout.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="UserContentModel"> + <attachedFolders /> + <explicitIncludes /> + <explicitExcludes /> + </component> +</project> \ No newline at end of file diff --git a/DebugKoe/.idea/.idea.DebugKoe/.idea/vcs.xml b/DebugKoe/.idea/.idea.DebugKoe/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..6c0b8635858dc7ad44b93df54b762707ce49eefc --- /dev/null +++ b/DebugKoe/.idea/.idea.DebugKoe/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?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 diff --git a/DebugKoe/DebugKoe.sln b/DebugKoe/DebugKoe.sln new file mode 100644 index 0000000000000000000000000000000000000000..1a471c597ed6e4c7c35e99eb50aec50b51c093a6 --- /dev/null +++ b/DebugKoe/DebugKoe.sln @@ -0,0 +1,10 @@ + +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 diff --git a/KelaCombat/KelaCombatTesti/KelaCombatTesti.cs b/KelaCombat/KelaCombatTesti/KelaCombatTesti.cs index 963d0b79381d74e4264125229a7625559301d245..e0b2aed0301ef6d0bdedd6ce9c30d54c8fcbc66b 100644 --- a/KelaCombat/KelaCombatTesti/KelaCombatTesti.cs +++ b/KelaCombat/KelaCombatTesti/KelaCombatTesti.cs @@ -36,7 +36,9 @@ namespace KelaCombatTesti; - + /// <summary> + /// + /// </summary> public override void Begin() { LuoKentta(); @@ -50,23 +52,14 @@ namespace KelaCombatTesti; //Ajastin, joka lisää uuden vihollisen joka 5. sekunti Timer.CreateAndStart(5.0, LisaaVihollinen); - // Törmäyksen käsittelijä, mitä tapahtuu, kun pelaaja osuu kelabotiin - //Siis pelaajan elämien väheneminen VahnigoitaPelaajaa-aliohjelman mukaisesti - AddCollisionHandler(pelaaja, "Kelabotti", VahingoitaPelaajaa); + //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()); @@ -95,7 +88,9 @@ namespace KelaCombatTesti; } - + /// <summary> + /// Tässä luodaan pelikenttä + /// </summary> void LuoKentta() { @@ -127,7 +122,13 @@ namespace KelaCombatTesti; pelaaja = LuoPelaaja(500.0, 0.0); } - + + /// <summary> + /// Aliohjelma, jossa luodaan pelaaja + /// </summary> + /// <param name="x">pelaajan x-koordinaatti</param> + /// <param name="y">pelaajan y-koordinaatti</param> + /// <returns>pelaaja</returns> PlatformCharacter LuoPelaaja(double x, double y) { PlatformCharacter pelaaja = new PlatformCharacter(50.0, 100.0); @@ -137,13 +138,18 @@ namespace KelaCombatTesti; pelaaja.Color = Color.Black; pelaaja.X = x; pelaaja.Y = y; - ; // Alussa on 5 elämää + // Törmäyksen käsittelijä, mitä tapahtuu, kun pelaaja osuu kelabotiin + //Siis pelaajan elämien väheneminen VahnigoitaPelaajaa-aliohjelman mukaisesti + AddCollisionHandler(pelaaja, "Kelabotti", VahingoitaPelaajaa); Add(pelaaja); return pelaaja; } - + + /// <summary> + /// Aliohjelma, joka luo pelaajalle elämälaskurin ja sen nimen: "Mielenterveys" + /// </summary> void LuoElamalaskuri() { pelaajanelamaLaskuri = new DoubleMeter(100.0); @@ -159,7 +165,7 @@ namespace KelaCombatTesti; elamapalkki.BorderColor = Color.Black; Label tekstikentta = new Label(200, 10, "Mielenterveys"); tekstikentta.X = Screen.Left + 100; - tekstikentta.Y = Screen.Bottom + 80; + tekstikentta.Y = Screen.Bottom + 70; tekstikentta.Font = new Font(20); Add(tekstikentta); Add (elamapalkki); @@ -167,34 +173,30 @@ namespace KelaCombatTesti; } - + /// <summary> + /// Aliohjelma, joka käsittelee pelaajan kuoleman ja ilmoittaa pelin loppumisen + /// </summary> void ElamaLoppui() { - Label Kuolema = new Label(800, 40, "Toimeentulohakemus hylätty."); + 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; + //Kuolema.Color = Color.Black; Add(Kuolema); - //Kuolema.X = Screen.Left + 0; - //Kuolema.Y = Screen.Bottom + 0; - pelaaja.Destroy(); } - - - - - - - // Tässä luodaan uusi fysiikkaolio, Pesismaila - //Tämä toimii pelaajan lyöntinä (samalla määritellään ase) - // - void LuoPesismaila(Vector koko, PlatformCharacter liitettava) + /// <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 = liitettava.Position + new Vector(80*liitettava.FacingDirection.GetVector().X, 10); + Pesismaila.Position = pelaaja.Position + new Vector(80*pelaaja.FacingDirection.GetVector().X, 10); Pesismaila.CollisionIgnoreGroup = 1; Pesismaila.Mass = 1; Pesismaila.Tag = "Pesismaila"; @@ -208,8 +210,10 @@ namespace KelaCombatTesti; } - - //Tämä funktio luo Kelabotti-vihun ja sille annetaan pelaajan seuraamis aivot + /// <summary> + /// Tämä funktio luo Kelabotti-vihun ja sille annetaan pelaajan seuraamis aivot + /// </summary> + /// <returns>Kelabotti</returns> PlatformCharacter LuoKelabotti() { PlatformCharacter Kelabotti = new PlatformCharacter(80.0, 80.0); @@ -228,7 +232,9 @@ namespace KelaCombatTesti; return Kelabotti; } - + /// <summary> + /// Lisää Kelabotteja + /// </summary> void LisaaVihollinen() { Random rand = new Random(); @@ -236,7 +242,11 @@ namespace KelaCombatTesti; double y = rand.Next(-200, 200); // Satunnainen Y-koordinaatti LuoKelabotti(); // Luodaan uusi vihollinen satunnaiseen paikkaan } - + /// <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 Kelabotti) { int luku = RandomGen.NextInt(19, 34); @@ -246,11 +256,12 @@ namespace KelaCombatTesti; if (pelaajanelamaLaskuri.Value <= 0) //jos laskuri menee nollaan... { pelaaja.Destroy(); //...ja pelaaja tuhotaan + //Pesismaila.Destroy();//...myös pesismaila } } - + //tää ei toimi vielä void VahingoitaKelabottia(PhysicsObject Kelabotti, PhysicsObject Pesismaila) { Kelabotinelamalaskuri.Value--; // Vähentää kelabotin elämää yhdellä @@ -259,19 +270,36 @@ namespace KelaCombatTesti; 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 + 100; - pisteNaytto.Y = Screen.Top - 50; - pisteNaytto.TextColor = Color.White; - pisteNaytto.Font = Font.Default; + 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