diff --git a/KelaCombat/KelaCombatTesti/Content/Hyppyaani.wav b/KelaCombat/KelaCombatTesti/Content/Hyppyaani.wav new file mode 100644 index 0000000000000000000000000000000000000000..18965284d35295e179f1b196bac56331cfffbe09 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/Hyppyaani.wav differ diff --git a/KelaCombat/KelaCombatTesti/Content/Kavelyaani.wav b/KelaCombat/KelaCombatTesti/Content/Kavelyaani.wav new file mode 100644 index 0000000000000000000000000000000000000000..5044fa055db9afa09a72b89ea2b0a5a5e53b2d12 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/Kavelyaani.wav differ diff --git a/KelaCombat/KelaCombatTesti/Content/Kelabotti.png b/KelaCombat/KelaCombatTesti/Content/Kelabotti.png index 03f4d6eac3440cb76ddfd667a054873bc698d176..1e6485e13b9f39279c24ed8fdefac8f5f70ec598 100644 Binary files a/KelaCombat/KelaCombatTesti/Content/Kelabotti.png and b/KelaCombat/KelaCombatTesti/Content/Kelabotti.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/Kelabotti2.png b/KelaCombat/KelaCombatTesti/Content/Kelabotti2.png new file mode 100644 index 0000000000000000000000000000000000000000..105505b333a84f342f19db686e8575add72e9ac5 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/Kelabotti2.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/Keladamageaani.wav b/KelaCombat/KelaCombatTesti/Content/Keladamageaani.wav new file mode 100644 index 0000000000000000000000000000000000000000..74d607592e004b8c52da8a759067c8099d633bad Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/Keladamageaani.wav differ diff --git a/KelaCombat/KelaCombatTesti/Content/Lyontiaani.wav b/KelaCombat/KelaCombatTesti/Content/Lyontiaani.wav new file mode 100644 index 0000000000000000000000000000000000000000..d17a6039e9e36244a7ab4ab724f2dfc094a6f6ae Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/Lyontiaani.wav differ diff --git a/KelaCombat/KelaCombatTesti/Content/Viinapulloaani.wav b/KelaCombat/KelaCombatTesti/Content/Viinapulloaani.wav new file mode 100644 index 0000000000000000000000000000000000000000..1d60d306515002ed31e754e9f433e7c1e5b11631 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/Viinapulloaani.wav differ diff --git a/KelaCombat/KelaCombatTesti/Content/kavely1.png b/KelaCombat/KelaCombatTesti/Content/kavely1.png new file mode 100644 index 0000000000000000000000000000000000000000..543a1488854d322048ca8675f72f929d94ccfb85 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/kavely1.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/kavely2.png b/KelaCombat/KelaCombatTesti/Content/kavely2.png new file mode 100644 index 0000000000000000000000000000000000000000..31aacb571178b6fc7318505b1eb801071410e529 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/kavely2.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/kentta1.png b/KelaCombat/KelaCombatTesti/Content/kentta1.png index 3372318fa08b9077c6cb5f171e29a8aa5ab1c052..ac5aa10aad5aa7c4e5a10d9f722d11bf204aec1f 100644 Binary files a/KelaCombat/KelaCombatTesti/Content/kentta1.png and b/KelaCombat/KelaCombatTesti/Content/kentta1.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/kentta2.png b/KelaCombat/KelaCombatTesti/Content/kentta2.png index 7af98ac72fedb9a284f6be101c0666a1c010c630..a43cb1ef2fcfd9816c9aa95d4afc3ea67467d29e 100644 Binary files a/KelaCombat/KelaCombatTesti/Content/kentta2.png and b/KelaCombat/KelaCombatTesti/Content/kentta2.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/kentta3.png b/KelaCombat/KelaCombatTesti/Content/kentta3.png new file mode 100644 index 0000000000000000000000000000000000000000..94854c5e58725e488d93a83ad84b3c9b20ca5c6e Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/kentta3.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/kolmio.png b/KelaCombat/KelaCombatTesti/Content/kolmio.png new file mode 100644 index 0000000000000000000000000000000000000000..2578a7659ff4525ffa4d893ec12b712239ecee44 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/kolmio.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/putoaminen1.png b/KelaCombat/KelaCombatTesti/Content/putoaminen1.png new file mode 100644 index 0000000000000000000000000000000000000000..4de27fc3ea0ff84f3ba0afa0663f5dfdeb45dbeb Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/putoaminen1.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/putoaminen2.png b/KelaCombat/KelaCombatTesti/Content/putoaminen2.png new file mode 100644 index 0000000000000000000000000000000000000000..fab2e2b9612f65eae991b547ff8eb39fda9bd15a Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/putoaminen2.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/putoaminen3.png b/KelaCombat/KelaCombatTesti/Content/putoaminen3.png new file mode 100644 index 0000000000000000000000000000000000000000..9dba1034e35b00abb9d9656ddb332b7051cb535a Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/putoaminen3.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/putoaminen4.png b/KelaCombat/KelaCombatTesti/Content/putoaminen4.png new file mode 100644 index 0000000000000000000000000000000000000000..ada51782654f73d5d832bf252910dca9533313e6 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/putoaminen4.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/putoaminen5.png b/KelaCombat/KelaCombatTesti/Content/putoaminen5.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff2d48f8d63208a1f12f222fad2a57edbaf6748 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/putoaminen5.png differ diff --git a/KelaCombat/KelaCombatTesti/Content/viinapullo.png b/KelaCombat/KelaCombatTesti/Content/viinapullo.png new file mode 100644 index 0000000000000000000000000000000000000000..2dff9a8b92552d112f4e8a8ddeb0ed7bc72704d3 Binary files /dev/null and b/KelaCombat/KelaCombatTesti/Content/viinapullo.png differ diff --git a/KelaCombat/KelaCombatTesti/KelaCombatTesti.cs b/KelaCombat/KelaCombatTesti/KelaCombatTesti.cs index df92c25750b2aaf5e218c3d1ff9a6409bc3bb999..777029880b4edd4cfef88172320775a3ffe0a3d1 100644 --- a/KelaCombat/KelaCombatTesti/KelaCombatTesti.cs +++ b/KelaCombat/KelaCombatTesti/KelaCombatTesti.cs @@ -21,14 +21,29 @@ namespace KelaCombatTesti; { int kenttanumero = 0; string[] Kentat = {"kentta1", "kentta2"}; + Image[] HenkiloSaapastelu = LoadImages("kavely1", "kavely2"); + Image[] PaikallaanAnimaatio = LoadImages("kavely1"); + Image[] PutoamisAnimaatio = LoadImages("putoaminen1", "putoaminen2", "putoaminen3", "putoaminen4", "putoaminen5"); + Image[] KelabottiKavely = LoadImages("Kelabotti", "Kelabotti2"); + + SoundEffect Hyppyaani = LoadSoundEffect("Hyppyaani"); + SoundEffect Viinapulloaani = LoadSoundEffect("Viinapulloaani"); + SoundEffect Keladamageaani = LoadSoundEffect("Keladamageaani"); + SoundEffect Kavelyaani = LoadSoundEffect("Kavelyaani"); + SoundEffect Lyontiaani = LoadSoundEffect("Lyontiaani"); + Timer Ajastin = new Timer(); + PlatformCharacter pelaaja; PhysicsObject Pesismaila; PhysicsObject Viinapullo; PhysicsObject kappale; + PhysicsObject kolmio; PlatformCharacter Kelabotti; Image TiiliseinaKuva = LoadImage("tiiliseina"); Image KelabottiKuva = LoadImage("Kelabotti"); - Image PelaajaKuva = LoadImage("Pelaaja.png"); + //Image PelaajaKuva = LoadImage("Pelaaja.png"); + Image ViinapulloKuva = LoadImage("Viinapullo.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 @@ -43,28 +58,93 @@ namespace KelaCombatTesti; /// <summary> - /// + /// Pedli alkaa tästä /// </summary> public override void Begin() { LuoKentta(0); - } + /// <summary> + /// Vasemmalle kävely + /// </summary> + /// <param name="vektori">suuntavektori</param> void LiikuVasemmalle(Vector vektori) { pelaaja.Walk(-120); + } + /// <summary> + /// Vasemmalle kävedllessä kuuluva ääni + /// </summary> + /// <param name="vektori">suuntavektori</param> + void AaniVasemmalle(Vector vektori) + { + Kavelyaani.Play(); + Ajastin.Interval = 0.5; // Äänen kesto + Ajastin.Timeout += delegate { Kavelyaani.Play(); }; + Ajastin.Start(); + } + + /// <summary> + /// Vasemmalle suuntautuvan äänen lopettaminen + /// </summary> + /// <param name="vektori">suuntavektori</param> + void LopetaAaniVasemmalle(Vector vektori) + { + if (Ajastin != null) // Tarkistetaan, onko ajastin luotu + { + Ajastin.Stop(); // Pysäytetään ajastin + Kavelyaani.Stop(); // Lopetetaan äänen toisto + } + } + + /// <summary> + /// Oikealle kävely + /// </summary> + /// <param name="vektori">suuntavektori</param> void LiikuOikealle(Vector vektori) { pelaaja.Walk(120); - } + } + + /// <summary> + /// Ääni oikealle liikkuessa + /// </summary> + /// <param name="vektori">suuntavektori</param> + void AaniOikealle(Vector vektori) + { + Kavelyaani.Play(); + Ajastin.Interval = 0.5; // Äänen kesto + Ajastin.Timeout += delegate { Kavelyaani.Play(); }; + Ajastin.Start(); + } + + /// <summary> + /// Oikealle suuntautuvan äänen lopettaminen + /// </summary> + /// <param name="vektori">suuntavektori</param> + void LopetaAaniOikealle(Vector vektori) + { + if (Ajastin != null) // Tarkistetaan, onko ajastin luotu + { + Ajastin.Stop(); // Pysäytetään ajastin + Kavelyaani.Stop(); // Lopetetaan äänen toisto + } + } + + /// <summary> + /// Hyppääminen + /// </summary> + /// <param name="vektori">suuntavektori</param> void Hyppaa(Vector vektori) { - pelaaja.Jump(480.0); + Hyppyaani.Play(); + pelaaja.Jump(900.0); } + /// <summary> /// Tässä luodaan pelikenttä /// </summary> @@ -76,53 +156,53 @@ namespace KelaCombatTesti; Valmistuminen.Y = 140; Valmistuminen.Font = new Font(60); Valmistuminen.TextColor = Color.LimeGreen; - //Kuolema.Color = Color.Black; Add(Valmistuminen); } else { ClearAll(); - 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(Kentat[numero]); - ruudut.SetTileMethod(Color.Lime, LuoPelaaja); //LIME pikseli on pelaaja + ruudut.SetTileMethod(Color.Lime, LuoPelaaja); //LIME pikseli on pelaaja, 0, 255, 0 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.SetTileMethod(Color.SkyBlue, LuoViinapullo); //VAALEANSNISET on pelaajaa parantavia viinapulloja 135, 206, 235 + ruudut.SetTileMethod(Color.Wheat, LuoExit); // 245, 222, 179 ruudut.Execute(80, 80); Timer.CreateAndStart(5.0, LuoKelabotti); LuoElamalaskuri(); - LuoPistelaskuri(); // Alustetaan pistelaskuri - - - //Ajastin, joka lisää uuden vihollisen joka 5. sekunti - + LuoPistelaskuri(); - //kelabotin elämien väheneminen VahingoitaKelabottia aliohjelman mukaisesti - //AddCollisionHandler(Kelabotti, "Pesismaila", VahingoitaKelabottia); - - Camera.Follow(pelaaja); + Keyboard.Listen(Key.A, ButtonState.Pressed, AaniVasemmalle, null, new Vector()); + Keyboard.Listen(Key.D, ButtonState.Pressed, AaniOikealle, null, new Vector()); + Keyboard.Listen(Key.A, ButtonState.Released, LopetaAaniVasemmalle, null, new Vector()); + Keyboard.Listen(Key.D, ButtonState.Released, LopetaAaniOikealle, null, new Vector()); + 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.W, ButtonState.Pressed, Hyppaa, null, new Vector()); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.Space, ButtonState.Pressed, LuoPesismaila, "", new Vector(90, 10), pelaaja); } } - //tämä aliohjelma luo tiili-palikoita, joista kenttä (tällä hetkellä) rakentuu + + /// <summary> + /// aliohjelma luo tiili-palikoita, joista kenttä rakentuu + /// </summary> + /// <param name="paikka">palikan paikka</param> + /// <param name="leveys">palikan korkeus</param> + /// <param name="korkeus">palikan leveys</param> void LuoTaso(Vector paikka, double leveys, double korkeus) { PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); @@ -133,18 +213,45 @@ namespace KelaCombatTesti; taso.Tag = "taso"; Add(taso); } - //tämä aliohjelma luo pelaajaa parantavan viinapllon + + /// <summary> + /// Aliohjelma, jossa luodaan seuraavaan kenttään vievä ovi + /// </summary> + /// <param name="paikka">oven paikka</param> + /// <param name="x">oven leveys</param> + /// <param name="y">oven korkeus</param> + void LuoExit(Vector paikka, double x, double y) + { + PhysicsObject kolmio = PhysicsObject.CreateStaticObject(20, 100); + kolmio.Position = paikka; + kolmio.CollisionIgnoreGroup = 2; + kolmio.Color = Color.HotPink; + kolmio.Tag = "kolmio"; + Add(kolmio); + } + + /// <summary> + /// Aliohjelma luo pelaajaa parantavan viinapllon + /// </summary> + /// <param name="paikka">pullon paikka</param> + /// <param name="x">pullon leveys</param> + /// <param name="y">pullon korkeus</param> void LuoViinapullo(Vector paikka, double x, double y) { - Viinapullo = PhysicsObject.CreateStaticObject(20, 20); + Viinapullo = PhysicsObject.CreateStaticObject(50, 50); Viinapullo.Position = paikka; Viinapullo.Color = Color.White; Viinapullo.Tag = "Viinapullo"; + Viinapullo.Image = ViinapulloKuva; Add(Viinapullo); - } - //tämä aliohjelma luo "haamupalikan" jonka sijaintiin kelabotti myöhemmin luodaan + /// <summary> + /// Aliohjelma luo "haamupalikan" jonka sijaintiin kelabotti myöhemmin luodaan + /// </summary> + /// <param name="paikka">palikan paikka</param> + /// <param name="leveys">palikan leveys</param> + /// <param name="korkeus">palikan korkeus</param> void LuoKelabottiSpawni(Vector paikka, double leveys, double korkeus) { PhysicsObject BottiSpawni = PhysicsObject.CreateStaticObject(leveys, korkeus); @@ -167,22 +274,28 @@ namespace KelaCombatTesti; void LuoPelaaja(Vector paikka, double x, double y) { pelaaja = new PlatformCharacter(50.0, 100.0); - pelaaja.Image = PelaajaKuva; + //pelaaja.Image = PelaajaKuva; pelaaja.Mass = 1.0; pelaaja.Shape = Shape.Rectangle; pelaaja.Color = Color.Black; pelaaja.Position = paikka; pelaaja.CollisionIgnoreGroup = 1; + pelaaja.AnimWalk = new Animation(HenkiloSaapastelu); + pelaaja.AnimIdle = new Animation(PaikallaanAnimaatio); + pelaaja.AnimWalk.FPS = 3; + pelaaja.AnimFall = new Animation(PutoamisAnimaatio); + pelaaja.AnimFall.FPS = 12; + pelaaja.LoopFallAnim = true; // 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); + AddCollisionHandler(pelaaja, "kolmio", KentanVaihto); //AddCollisionHandler(kappale, "taso", TuhoaKappale); Add(pelaaja); - } /// <summary> @@ -207,7 +320,6 @@ namespace KelaCombatTesti; tekstikentta.Font = new Font(20); Add(tekstikentta); Add(elamapalkki); - } @@ -227,11 +339,10 @@ namespace KelaCombatTesti; /// <summary> - /// Tässä luodaan uusi fysiikkaolio, Pesismaila - ///Tämä toimii pelaajan lyöntinä (samalla määritellään ase. + /// Pesismailan luominen /// </summary> /// <param name="koko">Pesismailan koko</param> - /// <param name="pelaaja">kohde, johon Pesismaila liitetään, eli pelaaja</param> + /// <param name="pelaaja">kohde, johon Pesismaila liitetään</param> void LuoPesismaila(Vector koko, PlatformCharacter pelaaja) { PhysicsObject Pesismaila = new PhysicsObject(koko.X, koko.Y); @@ -241,32 +352,34 @@ namespace KelaCombatTesti; Pesismaila.Tag = "Pesismaila"; Add(Pesismaila); Pesismaila.LifetimeLeft = TimeSpan.FromSeconds(0.075); + Sound Lyontiaani2 = Lyontiaani.CreateSound(); + Lyontiaani2.Volume = 1; + Lyontiaani2.Play(); 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 + /// Tämä funktio luo Kelabotti-vihun ja sille annetaan pelaajan seuraamisaivot /// </summary> /// <returns>Kelabotti</returns> void LuoKelabotti() { PhysicsObject spawni = spawnipaikat[RandomGen.NextInt(spawnipaikat.Count)]; - PlatformCharacter Kelabotti = new PlatformCharacter(80.0, 80.0); + PlatformCharacter Kelabotti = new PlatformCharacter(50.0, 100.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.AnimWalk = new Animation(KelabottiKavely); + Kelabotti.AnimWalk.FPS = 3; Add(Kelabotti); - FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); seuraajanAivot.Speed = 100; @@ -276,13 +389,10 @@ namespace KelaCombatTesti; 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; - + Kelabotti.Destroyed += heittoajastin.Stop; } + /// <summary> /// Aliohjelma, jossa käsitellään Kelabotin heittämä ammus /// </summary> @@ -316,47 +426,39 @@ namespace KelaCombatTesti; { 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 - + /// <summary> + /// Aliohjelma, joka parantaa pelaajan, kun tämä koskee viinapulloa + /// </summary> + /// <param name="pelaaja">kohde, joka parannetaan</param> + /// <param name="Viinapullo">parantava esine</param> void ParannaPelaajaa(PhysicsObject pelaaja, PhysicsObject Viinapullo) { //Viinapullo.CollisionIgnoreGroup = 1; - if (pelaajanelamaLaskuri.Value < 90) + if (pelaajanelamaLaskuri.Value < 99) { //Viinapullo.CollisionIgnoreGroup = 0; + Viinapulloaani.Play(); + pelaajanelamaLaskuri.Value = pelaajanelamaLaskuri.Value + 20; + pisteet.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; @@ -372,8 +474,6 @@ namespace KelaCombatTesti; pisteNaytto.Font = new Font(20); pisteNaytto.BindTo(pisteet); // Päivitetään teksti automaattisesti Add(pisteNaytto); - - } /// <summary> @@ -381,17 +481,28 @@ namespace KelaCombatTesti; /// </summary> /// <param name="pelaaja">pelaajahahmo</param> /// <param name="kelabotti">pelin vihu; Kelabotti</param> - void KunVihollinenTuhoutuu(PhysicsObject pelaaja, PhysicsObject kelabotti) - { + void KunVihollinenTuhoutuu(PhysicsObject pelaaja, PhysicsObject kelabotti) + { + Keladamageaani.Play(); pisteet.Value += 100; // Lisää esim. 100 pistettä, kun botti tuhotaan + + kelabotti.Destroy(); // Poistaa botin näytöltä + } + + /// <summary> + /// Aliohjelma, jossa käsitellään kentän vaihto + /// </summary> + /// <param name="pelaaja">pelaaja</param> + /// <param name="kolmio">esine, josta kenttä vaihtuu</param> + void KentanVaihto(PhysicsObject pelaaja, PhysicsObject kolmio) + { if (pisteet.Value >= 300) + { kenttanumero++; LuoKentta(kenttanumero); } - kelabotti.Destroy(); // Poistaa botin näytöltä - } - + } } diff --git a/KelaCombat/KelaCombatTesti/KelaCombatTesti.csproj b/KelaCombat/KelaCombatTesti/KelaCombatTesti.csproj index 9dd1d06421679c632283aec9ddb56e4d411d6895..b455b72e61530cc6c8b82fe2c772ce6f6a42def6 100644 --- a/KelaCombat/KelaCombatTesti/KelaCombatTesti.csproj +++ b/KelaCombat/KelaCombatTesti/KelaCombatTesti.csproj @@ -18,7 +18,7 @@ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Update="Content\Kelabotti.png"> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> <None Update="Content\kentta1.png"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> @@ -29,6 +29,51 @@ <None Update="Content\kentta2.png"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> + <None Update="Content\kolmio.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\kavely1.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\kavely2.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\putoaminen1.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\putoaminen2.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\putoaminen3.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\putoaminen4.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\putoaminen5.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\viinapullo.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\Kelabotti2.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\Hyppyaani.wav"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\Viinapulloaani.wav"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\Keladamageaani.wav"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\Kavelyaani.wav"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Update="Content\Lyontiaani.wav"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> </ItemGroup> </Project>