diff --git a/Surffipeli/Surffipeli.cs b/Surffipeli/Surffipeli.cs index df01286405da1290f71e44d93afb3e39b4872fd1..4be0a7899cda9d7205b1d24fbc8968790a7ef1be 100644 --- a/Surffipeli/Surffipeli.cs +++ b/Surffipeli/Surffipeli.cs @@ -1,19 +1,26 @@ using Jypeli; using Jypeli.Assets; using Jypeli.Controls; +using Jypeli.Effects; using Jypeli.Widgets; using System; using System.Collections.Generic; +using System.Diagnostics.Metrics; using System.Text; + namespace Surffipeli { + + /// @author Nilla Magga /// @version 31.05.2024 /// <summary> /// Surffipeli jossa tarkotuksena kerätä mahdollisimmaan paljon aaltoja /// ja varoa seiniä sekä kiviä /// </summary> + /// + public class Surffipeli : PhysicsGame { private const double NOPEUS = 10000; @@ -22,11 +29,14 @@ namespace Surffipeli private PlatformCharacter pelaaja1; + private Image pelaajanKuva = LoadImage("surffilauta.png"); private Image aaltoKuva = LoadImage("aalto.png"); private Image kiviKuva = LoadImage("kivi.png"); private Image pelaajanKuolemakuva = LoadImage("surffilautaKatki.png"); - + + private char[] merkitys = { '#','k','*','N' }; + private SoundEffect maaliAani = LoadSoundEffect("maali.wav"); private SoundEffect tormaysAani = LoadSoundEffect("maali.wav"); @@ -37,12 +47,14 @@ namespace Surffipeli public IntMeter pisteLaskuri; public Timer aikalaskuri; + public override void Begin() { + ClearAll(); SetWindowSize(1280, 720); Gravity = new Vector(0, -100); - + LuoKentta(); LisaaNappaimet(); @@ -68,11 +80,15 @@ namespace Surffipeli { pelaaja1.Push(new Vector(NOPEUS, 0.0)); } + + + /// <summary> /// Luodaan pistelaskuri aalloista saatuja pisteitä varten /// Asetataan se oikeaan yläkulmaan ja tehdään sille palkki joka muuttuu pisteiden mukaisesti punaiseksi /// Asetetaan pelille maksimipistemäärä /// </summary> + /// private void LuoPistelaskuri() { pisteLaskuri = new IntMeter(0); @@ -100,6 +116,7 @@ namespace Surffipeli pistePalkki.BorderColor = Color.Red; Add(pistePalkki); + /// <summary> /// Lisää tekstin "VOITTO" ja pysäyttää pelin kun pelaaja saavuttaa maksimipistemäärän /// </summary> @@ -141,9 +158,8 @@ namespace Surffipeli aika.X = Screen.Left + 200; aika.TextColor = Color.White; Add(aika); - - } + /// <summary> /// Aikalaskuri, jolla peli saadaan käynnistymään 5s päästä uudestaan voiton jälkeen /// </summary> @@ -168,6 +184,7 @@ namespace Surffipeli Add(voittoAika); } + /// <summary> /// Aikalaskuri, jolla peli saadaan käynnistymään 5s päästä uudestaan häviön jälkeen /// </summary> @@ -198,16 +215,18 @@ namespace Surffipeli ResetLayers(); Begin(); } + /// <summary> /// Kentän luonti peliä varten /// </summary> private void LuoKentta() { TileMap kentta = TileMap.FromLevelAsset("kentta1.txt"); - kentta.SetTileMethod('#', LisaaSeina); - kentta.SetTileMethod('k', LisaaKivi); - kentta.SetTileMethod('*', LisaaAalto); - kentta.SetTileMethod('N', LisaaPelaaja); + + kentta.SetTileMethod(merkitys[0], LisaaSeina); + kentta.SetTileMethod(merkitys[1], LisaaKivi); + kentta.SetTileMethod(merkitys[2], LisaaAalto); + kentta.SetTileMethod(merkitys[3], LisaaPelaaja); kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); Level.Background.CreateGradient(Color.White, Color.SkyBlue); @@ -217,6 +236,7 @@ namespace Surffipeli PhysicsObject oikeaReuna = Level.CreateRightBorder(); oikeaReuna.Tag = "maali"; } + /// <summary> /// Luodaan pelille seinät /// </summary> @@ -231,6 +251,7 @@ namespace Surffipeli seina.Tag = "seina"; Add(seina); } + /// <summary> /// Luodaan kenttään kiviä, joita pelaajan pitää väistää /// </summary> @@ -243,8 +264,10 @@ namespace Surffipeli kivi.Position = paikka; kivi.Image = kiviKuva; kivi.Tag = "kivi"; - Add(kivi); + Add(kivi); } + + /// <summary> /// Luodaan kenttään aaltoja, joita pelaajan tarkoitus kerätä /// </summary> @@ -260,6 +283,7 @@ namespace Surffipeli aalto.Tag = "aalto"; Add(aalto); } + /// <summary> /// Luodaan pelaaja ja määritetään sen törmäyskäsittelijät /// </summary> @@ -278,6 +302,7 @@ namespace Surffipeli AddCollisionHandler(pelaaja1, "maali", Maali); Add(pelaaja1); } + /// <summary> /// Luodaan päätyseinästä objekti, jonka saavuttamalla kenttä päästään läpi /// </summary> @@ -294,6 +319,7 @@ namespace Surffipeli liikutusajastin.Stop(); } + /// <summary> /// Lisätään näppäimet millä peliä hallitaan /// </summary> @@ -315,6 +341,7 @@ namespace Surffipeli { hahmo.ForceJump(nopeus); } + /// <summary> /// Lisätään teksti "keräsit aallon" ja annetaan pistelaskuriin yksi lisäpiste /// </summary> @@ -327,6 +354,7 @@ namespace Surffipeli aalto.Destroy(); pisteLaskuri.Value += 1; } + /// <summary> /// Peli loppuu kun kiveen osutaan. Määritetään pelaajalle uusi kuva /// </summary> @@ -350,6 +378,7 @@ namespace Surffipeli Gravity = Vector.Zero; } } + /// <summary> /// Lisätään teksti "Varo seiniä" kun pelaaja osuu ylä- tai alaseinään. /// </summary> @@ -361,10 +390,12 @@ namespace Surffipeli { MessageDisplay.Add("Varo seiniä!"); pisteLaskuri.Value -= 1; - } - + + } } + + } }