source: 2016/25/JesseK/FysiikkaPeli4/FysiikkaPeli4/FysiikkaPeli4/FysiikkaPeli4.cs @ 7492

Revision 7492, 3.4 KB checked in by koannak, 3 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class FysiikkaPeli4 : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    Vector nopeusYlos = new Vector(400,0);
13    Vector nopeusAlas = new Vector(-400,0);
14   
15    public override void Begin()
16    {
17       
18        LuoKentta();
19        LuoOhjaimet();
20        Camera.ZoomToAllObjects();
21
22        Gravity = new Vector(0, -50);
23
24        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
25        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
26    }
27    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
28    {
29        pelaaja =  PhysicsObject.CreateStaticObject(80, 10);
30        pelaaja.Position = paikka;
31        Add(pelaaja);
32        pelaaja.CanRotate = false;
33        pelaaja.IgnoresGravity = true;
34
35       
36    }
37   
38        void LuoOhjaimet()
39    {
40        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", pelaaja, nopeusYlos);
41        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
42        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", pelaaja, nopeusAlas);
43        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
44        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
45        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
46        Keyboard.Listen(Key.F, ButtonState.Pressed,AloitaAlusta,null);
47    }
48    void AloitaAlusta()
49    {
50
51    }
52   void AsetaNopeus(PhysicsObject nelio,Vector nopeus)
53    {
54        nelio.Velocity = nopeus;
55    }
56    void LuoKentta()
57    {
58
59
60        TileMap kentta = TileMap.FromLevelAsset("breakouthomma");
61        kentta.SetTileMethod('*', LisaaTaso);
62        kentta.SetTileMethod('-', LisaaPelaaja);
63        kentta.SetTileMethod('.', LisaaPallo);
64        kentta.SetTileMethod('#', LisaaSeinat);
65        kentta.Execute();
66    }
67    void LisaaTaso(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys*0.5, korkeus*0.3);
70        taso.Position = paikka;
71        taso.Color = RandomGen.NextColor();
72        Add(taso);
73        taso.Tag = "rikottava";
74        taso.Restitution = 5.0;
75
76    }
77
78    void LisaaSeinat(Vector paikka, double leveys, double korkeus)
79    {
80        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
81        seina.Position = paikka;
82        seina.Color = Color.White;
83        seina.Tag = "seina";
84        Add(seina);
85        seina.Restitution = 1.0;
86    }
87
88    void LisaaPallo(Vector paikka, double leveys, double korkeus)
89    {
90        PhysicsObject pallo = new PhysicsObject(leveys * 0.3, korkeus * 0.2);
91        pallo.Position = paikka;
92        pallo.Color = Color.White;
93        pallo.Tag = "seina";
94        AddCollisionHandler(pallo, "rikottava", PalloTormasiTasoon);
95        AddCollisionHandler(pallo, PalloTormasi);
96       
97     
98        Add(pallo);
99    }
100    void PalloTormasi(PhysicsObject pallo,PhysicsObject taso)
101    {
102     
103        pallo.Velocity = RandomGen.NextVector(300, 400);
104    }
105    void PalloTormasiTasoon(PhysicsObject pallo, PhysicsObject taso)
106    {
107        taso.Destroy();
108    }
109}
110
Note: See TracBrowser for help on using the repository browser.