diff --git "a/peli/harkkaty\303\266/pomppu possu/Megaporkkanat.cs" "b/peli/harkkaty\303\266/pomppu possu/Megaporkkanat.cs" new file mode 100644 index 0000000000000000000000000000000000000000..13da6fce265e6f122e9d29f2df369fde22679e53 --- /dev/null +++ "b/peli/harkkaty\303\266/pomppu possu/Megaporkkanat.cs" @@ -0,0 +1,30 @@ +namespace pomppu_possu; +using Jypeli; + +public class Megaporkkanat : PhysicsObject +{ + private Color[] _varit; // Yksityinen oliomuuttuja + private int _osumat; + public Megaporkkanat(double leveys, double korkeus, Color[] varit) : base(leveys, korkeus) + { + _varit = varit; + _osumat = 0; + Color = varit[0]; + } + + public void OtaVastaanOsuma() + { + _osumat++; + if (_osumat == 1) + { + TuhoaPalikka(); + } + else Color = _varit[_osumat]; + + } + + public virtual void TuhoaPalikka() + { + this.Destroy(); + } +} \ No newline at end of file diff --git "a/peli/harkkaty\303\266/pomppu possu/Tasot.cs" "b/peli/harkkaty\303\266/pomppu possu/Tasot.cs" new file mode 100644 index 0000000000000000000000000000000000000000..b81e19783d74ba2ef6b5f1cdaf1a7f8b345ddedd --- /dev/null +++ "b/peli/harkkaty\303\266/pomppu possu/Tasot.cs" @@ -0,0 +1,12 @@ +namespace pomppu_possu; +using Jypeli; + +public class Tasot : Megaporkkanat +{ + public Tasot(double leveys, double korkeus) + : base(leveys, korkeus,new Color[] { Jypeli.Color.Pink, Jypeli.Color.SeaGreen, Jypeli.Color.Black }) + { + + } + +} \ No newline at end of file diff --git "a/peli/harkkaty\303\266/pomppu possu/pomppu possu.cs" "b/peli/harkkaty\303\266/pomppu possu/pomppu possu.cs" index d00d68e4f683ea5a7712a5962f06c17c4502b555..379c116c6f6ebea06d24d95ca640e0db12c43823 100644 --- "a/peli/harkkaty\303\266/pomppu possu/pomppu possu.cs" +++ "b/peli/harkkaty\303\266/pomppu possu/pomppu possu.cs" @@ -15,11 +15,70 @@ namespace pomppu_possu; public class pomppu_possu : PhysicsGame { public override void Begin() - { - // Pomppu possun megamaailma + {Level.Size = new Vector(1920, 1080); + SetWindowSize(1920, 1080); + CenterWindow(); + Level.CreateBorders(); + Level.Background.Color = Color.SpringGreen; + + PhysicsObject pomppuPossu = new PhysicsObject(30, 80, Shape.Rectangle); + Add(pomppuPossu); + + Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa ylös", pomppuPossu, new Vector(0,1000)); + Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa alas", pomppuPossu, new Vector(0,-1000)); + Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa vasemmalle", pomppuPossu, new Vector(-1000,0)); + Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa oikealle", pomppuPossu, new Vector(1000,0)); - PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); + for (int i = 0; i < 20; i++) + { + Color[] varit = { Color.Red, Color.Yellow, Color.Green }; + Megaporkkanat pisteet = new Megaporkkanat(50, 50, varit); + pisteet.Position = RandomGen.NextVector(Level.BoundingRect); + AddCollisionHandler<PhysicsObject, Megaporkkanat>(pomppuPossu, pisteet, TormattiinEsineeseen); + Add(pisteet); + } + + + + for (int i = 0; i < 10; i++) + { + Color[] varit = { Color.Black, Color.White }; + Megaporkkanat ympyra = new Megaporkkanat(60, 60, varit); + ympyra.Shape = Shape.Circle; + ympyra.Position = RandomGen.NextVector(Level.BoundingRect); + AddCollisionHandler<PhysicsObject, Megaporkkanat>(pomppuPossu, ympyra, TormattiinEsineeseen); + Add(ympyra); + } + + for (int i = 0; i < 5; i++) + { + Tasot paikallaan = new Tasot(150, 20); + paikallaan.MakeStatic(); + paikallaan.Position = RandomGen.NextVector(Level.BoundingRect); + Add(paikallaan); + } + + Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); } + + public void TormattiinEsineeseen(PhysicsObject tormaaja, Megaporkkanat kohde) + { + kohde.OtaVastaanOsuma(); + } + + /// <summary> + /// Liikuttaa fysiikkaoliota. + /// </summary> + /// <param name="liikuteltava">Liikutettava</param> + /// <param name="suunta">Suunta</param> + public void Liikuta(PhysicsObject liikuteltava, Vector suunta) + { + liikuteltava.Push(suunta); + } + // Pomppu possun megamaailma + + } +