source: 2012/30/MatildaL/SquareGuard/SquareGuard/SquareGuard/SquareGuard.cs @ 3749

Revision 3749, 6.9 KB checked in by malirola, 9 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9
10public class SquareGuard : PhysicsGame
11{
12    const double nopeus = 200;
13    const double hyppyNopeus = 1000;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter nelio;
17    Image tahtiKuva = LoadImage("tahti");
18
19    public override void Begin()
20    {
21        Alkuvalikko();
22        Gravity = new Vector(0, -1000);
23        LuoKentta();
24        LisaaNappaimet();
25
26        Camera.ZoomFactor = 0.1;
27        Camera.StayInLevel = true;
28    }
29
30    void LuoKentta()
31    {
32        TileMap kentta = TileMap.FromLevelAsset("kentta1");
33        kentta.SetTileMethod('#', LisaaTaso);
34        kentta.SetTileMethod('*', LisaaTahti);
35        kentta.SetTileMethod('N', LisaaNelio);
36        kentta.SetTileMethod('P', LisaaPallo);
37        //kentta.SetTileMethod('L', LisaaLiikkuva);
38        //kentta.SetTileMethod('2', LisaaLiikkuva);
39        kentta.SetTileMethod('e', LisaaEste);
40        kentta.Execute();
41        Level.CreateBorders(1.0, false);
42        Level.BackgroundColor = Color.Lavender;
43    }
44
45    void LisaaTaso(Vector paikka, double leveys, double korkeus)
46    {
47        PhysicsObject taso = PhysicsObject.CreateStaticObject(50, 10);
48        taso.Position = paikka;
49        taso.Restitution = 1.0;
50        taso.Color = Color.Black;
51        Add(taso);
52        taso.CollisionIgnoreGroup = 1;
53    }
54
55    void LisaaTahti(Vector paikka, double leveys, double korkeus)
56    {
57        PhysicsObject tahti = PhysicsObject.CreateStaticObject(20, 20);
58        tahti.IgnoresCollisionResponse = true;
59        tahti.Position = paikka;
60        tahti.Shape = Shape.Diamond;
61        tahti.Color = Color.Violet;
62        tahti.Tag = "tahti";
63        Add(tahti);
64    }
65
66    void LisaaNelio(Vector paikka, double leveys, double korkeus)
67    {
68        nelio = new PlatformCharacter(20, 20);
69        nelio.Position = paikka;
70        nelio.Mass = 3.0;
71        nelio.Shape = Shape.Rectangle;
72        nelio.Color = Color.Purple;
73        AddCollisionHandler(nelio, "tahti", TormaaTahteen);
74        Add(nelio);
75    }
76
77    void LisaaPallo(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject pallo = new PhysicsObject(30, 30);
80        pallo.Shape = Shape.Circle;
81        pallo.Color = Color.Ultramarine;
82        pallo.Restitution = 1.0;
83        //pallo.Velocity = new Vector();
84
85        //Vector nopeusYlos = new Vector(0, 200);
86        //Vector nopeusAlas = new Vector(0, -500);
87
88        pallo.Velocity = new Vector(0, 300);
89
90        AddCollisionHandler(pallo, "tahti", PalloTormaaTahteen);
91        AddCollisionHandler(pallo, "taso", PalloTormaaTasoon);
92        Add(pallo, 1);
93
94        //pallo.IgnoresGravity = true;
95          pallo.IgnoresPhysicsLogics = true;
96        //pallo.IgnoresCollisionResponse = true;
97
98        Vector voima = Vector.FromLengthAndAngle(RandomGen.NextDouble(0.0, 1000.0), RandomGen.NextAngle());
99        Vector impulssi = new Vector(500.0, 0.0);
100        pallo.Hit(impulssi);
101       
102        pallo.CollisionIgnoreGroup = 1;
103    }
104
105    //void LisaaLiikkuva(Vector paikka, double leveys, double korkeus)
106    //{
107        //PhysicsObject liikkuva = new PhysicsObject(50, 10);
108        //liikkuva.Color = Color.Black;
109        //liikkuva.CanRotate = false;
110
111        //List<Vector> polku = new List<Vector>();
112        //polku.Add(new Vector(40, 120));
113        //polku.Add(new Vector(-100, 60));
114
115        //PathFollowerBrain polkuAivot = new PathFollowerBrain();
116        //polkuAivot.Path = polku;
117        //polkuAivot.Loop = true;
118        //polkuAivot.Speed = 100;
119        //polkuAivot.Active = true;
120
121        //liikkuva.Position = paikka;
122        //liikkuva.Brain = polkuAivot;
123        //Add(liikkuva);
124
125    //}
126
127    //void LisaaLiikkuva2(Vector paikka, double leveys, double korkeus)
128    //{
129        //PhysicsObject liikkuva2 = new PhysicsObject(50, 10);
130        //liikkuva2.Color = Color.Black;
131        //liikkuva2.CanRotate = false;
132
133        //List<Vector> polku = new List<Vector>();
134        //polku.Add(new Vector(-200, -100));
135        //polku.Add(new Vector(-100, -200));
136
137        //PathFollowerBrain polkuAivot = new PathFollowerBrain();
138        //polkuAivot.Path = polku;
139        //polkuAivot.Loop = true;
140        //polkuAivot.Speed = 100;
141        //polkuAivot.Active = true;
142
143        //liikkuva2.Position = paikka;
144        //liikkuva2.Brain = polkuAivot;
145        //Add(liikkuva2);
146    //}
147
148    void LisaaEste(Vector paikka, double leveys, double korkeus)
149    {
150        PhysicsObject este = PhysicsObject.CreateStaticObject(20, 20);
151        este.Color = Color.Black;
152        este.Shape = Shape.Circle;
153        este.Position = paikka;
154        Add(este);
155    }
156
157
158
159
160    void LisaaNappaimet()
161    {
162        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
163        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
164        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
165
166        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", nelio, -nopeus);
167        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", nelio, nopeus);
168        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", nelio, hyppyNopeus);
169
170        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
171
172        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", nelio, -nopeus);
173        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", nelio, nopeus);
174        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", nelio, hyppyNopeus);
175
176        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
177    }
178
179    void Liikuta(PlatformCharacter hahmo, double nopeus)
180    {
181        hahmo.Walk(nopeus);
182    }
183
184    void Hyppaa(PlatformCharacter hahmo, double nopeus)
185    {
186        hahmo.Jump(nopeus);
187    }
188
189    void TormaaTahteen(PhysicsObject nelio, PhysicsObject tahti)
190    {
191        tahti.Destroy();
192    }
193
194    void PalloTormaaTasoon(PhysicsObject taso, PhysicsObject pallo)
195    {
196        taso.IgnoresCollisionResponse = true;
197    }
198
199    void PalloTormaaTahteen(PhysicsObject pallo, PhysicsObject tahti)
200    {
201        ClearAll();
202    }
203
204    void Alkuvalikko()
205    {
206        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
207        "Aloita peli", "Lopeta");
208        alkuValikko.Color = Color.PaintDotNetMagenta;
209        Add(alkuValikko);
210    }
211
212    void PainettiinValikonNappia(int valinta)
213    {
214        switch (valinta)
215        {
216            case 0:
217                // AloitaPeli();
218                break;
219            case 2:
220                Exit();
221                break;
222        }
223    }
224
225   
226
227
228}
Note: See TracBrowser for help on using the repository browser.