source: 2013/24/EeroR/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2.cs @ 4096

Revision 4096, 7.0 KB checked in by eeroutti, 6 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
9public class FysiikkaPeli2 : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    Image pelaajankuva = LoadImage("ukeli");
13    Image olionkuva = LoadImage("ukko");
14    Image maalinkuva = LoadImage("maali");
15    int kenttanro = 1;
16    public override void Begin()
17    {
18        luokentta();
19    }
20
21    void seuraavakenttä()
22    {
23        ClearAll();
24
25
26        Level.BackgroundColor = Color.Black;
27        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
28        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
29        Keyboard.Listen(Key.Left, ButtonState.Down,
30          LiikutaPelaajaa, null, new Vector(-1390, 0));
31        Keyboard.Listen(Key.Right, ButtonState.Down,
32          LiikutaPelaajaa, null, new Vector(1390, 0));
33        Keyboard.Listen(Key.Up, ButtonState.Down,
34          LiikutaPelaajaa, null, new Vector(0, 1390));
35        Keyboard.Listen(Key.Down, ButtonState.Down,
36          LiikutaPelaajaa, null, new Vector(0, -1390));
37
38        if (kenttanro == 1) luokentta();
39        if(kenttanro == 2) luokentta2();
40        if(kenttanro == 3) luokenttä3();
41        if (kenttanro == 4) luokenttä4();
42        if (kenttanro == 5) luokenttä5();
43        if (kenttanro == 6) Exit();
44       
45    }
46
47    void LiikutaPelaajaa(Vector vektori)
48      {
49      pelaaja.Push(vektori);
50      }
51    void luopelaaja(Vector paikka, double leveys, double korkeus)
52    {
53        pelaaja = new PhysicsObject(leveys, korkeus);
54        pelaaja.Shape = Shape.Circle;
55        pelaaja.Color = Color.White;
56        Add(pelaaja);
57        pelaaja.X = paikka.X;
58        pelaaja.Y = paikka.Y;
59        pelaaja.Image = pelaajankuva;
60        pelaaja.Destroyed += PeliLoppuu;
61        pelaaja.Tag = "pelaaja";
62        pelaaja.CanRotate = false;
63        pelaaja.Restitution = 0;
64        pelaaja.LinearDamping = 0.9;
65
66        Camera.Follow(pelaaja);
67    }
68
69    void PeliLoppuu()
70    {
71        MessageWindow window = new MessageWindow("Asuntosi takavarikoitiin");
72        Add(window);
73        window.Closed += uusipeli;
74    }
75
76    void luoolio(Vector paikka, double leveys, double korkeus)
77    {
78        PhysicsObject olio = new PhysicsObject(40, 40);
79        FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja");
80        olio.Brain = seuraajanAivot;
81        seuraajanAivot.Speed = 280;
82        olio.Shape = Shape.Circle;
83        olio.Position = paikka;
84        AddCollisionHandler(olio, "pelaaja", OlioOsuuPelaajaan);
85        Add(olio);
86        olio.Image = olionkuva;
87        olio.Restitution = 0;
88        olio.CanRotate = true;
89    }
90
91    void OlioOsuuPelaajaan(PhysicsObject olio, PhysicsObject pelaaja)
92    {
93        pelaaja.Destroy();
94    }
95
96    void luokentta()
97    {
98        Level.BackgroundColor = Color.Black;
99        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
100        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
101        Keyboard.Listen(Key.Left, ButtonState.Down,
102          LiikutaPelaajaa, null, new Vector(-1390, 0));
103        Keyboard.Listen(Key.Right, ButtonState.Down,
104          LiikutaPelaajaa, null, new Vector(1390, 0));
105        Keyboard.Listen(Key.Up, ButtonState.Down,
106          LiikutaPelaajaa, null, new Vector(0, 1390));
107        Keyboard.Listen(Key.Down, ButtonState.Down,
108          LiikutaPelaajaa, null, new Vector(0, -1390));
109
110        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä");
111        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), luopelaaja);
112        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), luoolio);
113        ruudut.SetTileMethod(Color.Black, luoseinä);
114        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), luomaali);
115        ruudut.SetTileMethod(Color.FromHexCode("B200FF"), luorikkiseinä);
116        ruudut.Execute(40, 40);
117       
118    }
119    void luokentta2()
120    {
121        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä2");
122        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), luopelaaja);
123        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), luoolio);
124        ruudut.SetTileMethod(Color.Black, luoseinä);
125        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), luomaali);
126        ruudut.SetTileMethod(Color.FromHexCode("B200FF"), luorikkiseinä);
127        ruudut.Execute(40, 40);
128
129    }
130    void luokenttä3()
131    {
132        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä3");
133        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), luopelaaja);
134        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), luoolio);
135        ruudut.SetTileMethod(Color.Black, luoseinä);
136        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), luomaali);
137        ruudut.SetTileMethod(Color.FromHexCode("B200FF"), luorikkiseinä);
138        ruudut.Execute(40, 40);
139    }
140
141    void luokenttä4()
142    {
143        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä4");
144        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), luopelaaja);
145        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), luoolio);
146        ruudut.SetTileMethod(Color.Black, luoseinä);
147        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), luomaali);
148        ruudut.SetTileMethod(Color.FromHexCode("B200FF"), luorikkiseinä);
149        ruudut.Execute(40, 40);
150    }
151    void luokenttä5()
152    {
153        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä5");
154        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), luopelaaja);
155        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), luoolio);
156        ruudut.SetTileMethod(Color.Black, luoseinä);
157        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), luomaali);
158        ruudut.SetTileMethod(Color.FromHexCode("B200FF"), luorikkiseinä);
159        ruudut.Execute(40, 40);
160    }
161   
162   
163
164    void luoseinä(Vector paikka, double leveys, double korkeus)
165    {
166        PhysicsObject seinä = PhysicsObject.CreateStaticObject(leveys, korkeus);
167        seinä.Position = paikka;
168        Add(seinä);
169
170    }
171
172    void luorikkiseinä(Vector paikka, double leveys, double korkeus)
173    {
174        PhysicsObject rseinä = new PhysicsObject(leveys, korkeus);
175        rseinä.Position = paikka;
176        Add(rseinä);
177    }
178
179
180    void luomaali(Vector paikka, double leveys, double korkeus)
181    {
182        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
183        maali.Position = paikka;
184        maali.Image = maalinkuva;
185        AddCollisionHandler(maali, "pelaaja", tormasimaaliin);
186        Add(maali);
187    }
188    void tormasimaaliin(PhysicsObject pelaaja, PhysicsObject maali)
189    {
190        MessageWindow window = new MessageWindow("Pääsit karkuun ulosottomiehiltä");
191        Add(window);
192        window.Closed += uusipeli;
193        kenttanro++;
194        seuraavakenttä();
195    }
196
197    void uusipeli(Window ikkuna)
198    {
199        seuraavakenttä();
200    }
201}
202
203
204       
205   
206
Note: See TracBrowser for help on using the repository browser.