source: 2015/24/TomasC/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 6010

Revision 6010, 7.3 KB checked in by tocholmo , 6 years ago (diff)

valmis

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    int kenttaNro = 1;
17   
18
19    Image pelaajanKuva = LoadImage("norsu");
20    Image tahtiKuva = LoadImage("tahti");
21    Image maakuva = LoadImage("maa");
22    Image illumanatiKuva = LoadImage("Illu");
23
24
25    Image taustakuva = LoadImage("BR");
26 
27    public override void Begin()
28    {
29        LataaKentta();
30    }
31
32    void LataaKentta()
33    {
34        ClearAll();
35
36        Gravity = new Vector(0, -1000);
37
38        IsFullScreen = true;
39
40        LuoKentta("kentta"+kenttaNro);
41        LisaaNappaimet();
42
43        Camera.Follow(pelaaja1);
44        Camera.ZoomFactor = 2.0;
45        Camera.StayInLevel = true;
46    }
47
48    void seuraavakentta()
49    {
50        kenttaNro++;
51        LataaKentta();
52    }
53
54    void LuoKentta(string kentta)
55    {
56       
57       
58       
59            ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kentta);
60
61        ruudut.SetTileMethod(Color.Black, Lisaahirvio);
62        ruudut.SetTileMethod(Color.Rose, LisaaTaso);
63        ruudut.SetTileMethod(Color.Red, LisaaTahti);
64        ruudut.SetTileMethod(Color.Gold, LisaaPelaaja);
65        ruudut.SetTileMethod(Color.DarkGray, LisaaMaali);
66        ruudut.SetTileMethod(Color.Cyan, Lisaahirvio2);
67        ruudut.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
68        Level.CreateBorders();
69        Level.Background.Image = taustakuva;
70    }
71
72    void LisaaTaso(Vector paikka, double leveys, double korkeus)
73    {
74        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
75        taso.Position = paikka;
76        taso.Image = maakuva;
77        taso.Tag = "maa";
78        taso.CollisionIgnoreGroup = 3;
79        Add(taso);
80    }
81
82    void LisaaTahti(Vector paikka, double leveys, double korkeus)
83    {
84        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
85        tahti.IgnoresCollisionResponse = true;
86        tahti.Position = paikka;
87        tahti.Image = tahtiKuva;
88        tahti.Tag = "tahti";
89        Add(tahti);
90    }
91
92    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
93    {
94        pelaaja1 = new PlatformCharacter(leveys, korkeus);
95        pelaaja1.Position = paikka;
96        pelaaja1.Mass = 4.0;
97        pelaaja1.Image = pelaajanKuva;
98        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
99        AddCollisionHandler(pelaaja1, "Jarmo", TormaaShrek);
100        AddCollisionHandler(pelaaja1, "maali", TormaaMaali);
101        AddCollisionHandler(pelaaja1, "Illu", TormaaIllu);
102        pelaaja1.Tag = "Jimmy";
103        Add(pelaaja1);
104    }
105
106    void LisaaNappaimet()
107    {
108        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
109        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
110
111        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
112        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
113        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
114
115        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
116
117        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
118        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
119        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
120
121        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
122    }
123
124    void Liikuta(PlatformCharacter hahmo, double nopeus)
125    {
126        hahmo.Walk(nopeus);
127    }
128
129    void Hyppaa(PlatformCharacter hahmo, double nopeus)
130    {
131
132        hahmo.Jump(nopeus);
133    }
134
135    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
136    {
137        MessageDisplay.Add("PICKED UP DORITOS");
138        tahti.Destroy();
139    }
140    void LisaaMaali(Vector paikka, double leveys, double korkeus)
141    {
142        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
143         maali.Position = paikka;
144      maali.Image = LoadImage("maali");
145      maali.Tag = "maali";
146        Add(maali);
147    }
148
149    void Lisaahirvio(Vector paikka, double leveys, double korkeus)
150    {
151        PhysicsObject Jarmo = new PhysicsObject(leveys, korkeus);
152        Jarmo.Position = paikka;
153        Jarmo.Image = LoadImage("Jarmo");
154        Jarmo.Tag = "Jarmo";
155        Add(Jarmo);
156
157        FollowerBrain seuraajanAivot = new FollowerBrain("Jimmy");
158        Jarmo.Brain = seuraajanAivot;
159        seuraajanAivot.Speed = 100;
160        seuraajanAivot.DistanceFar = 2000;
161        seuraajanAivot.DistanceClose = 2000;
162        seuraajanAivot.StopWhenTargetClose = false;
163        seuraajanAivot.Active = true;
164        Jarmo.CollisionIgnoreGroup = 3;
165
166 
167    }
168    void Lisaahirvio2(Vector paikka, double leveys, double korkeus)
169    {
170        PhysicsObject Illu= new PhysicsObject(leveys *10, korkeus *10);
171        Illu.Position = paikka;
172        Illu.Shape = Shape.FromImage(LoadImage("Illu"));
173        Illu.Image = LoadImage("Illu");
174        Illu.Tag = "Illu";
175        Illu.Mass = 10.0;
176        Add(Illu, 3);
177
178        FollowerBrain seuraajanAivot = new FollowerBrain("Jimmy");
179        Illu.Brain = seuraajanAivot;
180        seuraajanAivot.Speed = 100;
181        seuraajanAivot.DistanceFar = 2000;
182        seuraajanAivot.DistanceClose = 2000;
183        seuraajanAivot.StopWhenTargetClose = false;
184        seuraajanAivot.Active = true;
185        Illu.CollisionIgnoreGroup = 3;
186
187    }
188   
189    void TormaaShrek(PhysicsObject hahmo, PhysicsObject Jarmo)
190    {
191        hahmo.Destroy();
192        MessageDisplay.Add("GET OUT OF ME SWAMP");
193        rajaytaShrek(Jarmo, LoadImage("Snipe"), 100);
194        rajaytaShrek(Jarmo, LoadImage("Shrekt"), 200);
195        rajaytaShrek(Jarmo, LoadImage("MD"), 100);
196        Timer.SingleShot(3.0, LataaKentta);
197
198       
199    }
200    void TormaaMaali(PhysicsObject pelaaja1, PhysicsObject maali)
201    {
202        seuraavakentta();
203    }
204   
205    void rajaytaShrek(PhysicsObject Jarmo, Image kuva, int pMax)
206    {
207       
208        ExplosionSystem rajahdys = new ExplosionSystem(kuva, pMax);
209        rajahdys.Position = Jarmo.Position;
210
211        Add(rajahdys);
212        rajahdys.AddEffect(Jarmo.X, Jarmo.Y, pMax);
213
214    }
215    void rajaytaIllu(PhysicsObject Illu, Image kuva, int pMax)
216    {
217
218        ExplosionSystem rajahdys = new ExplosionSystem(kuva, pMax);
219        rajahdys.Position = Illu.Position;
220
221        Add(rajahdys);
222        rajahdys.AddEffect(Illu.X, Illu.Y, pMax);
223
224    }
225    void TormaaIllu(PhysicsObject hahmo, PhysicsObject Illu)
226    {
227        hahmo.Destroy();
228        MessageDisplay.Add("YOU WEREN'T EXPECTING ME M8 ILLUMINATI IS REAL, WE ARE SUPERIOR");
229        rajaytaIllu(Illu, LoadImage("Illu"), 1000);
230        Timer.SingleShot(3.0, LataaKentta);
231
232    }
233   
234    void Pelaaja1Tormasi(PhysicsObject pelaaja1, PhysicsObject Jarmo)
235    {
236       
237       
238          LataaKentta();
239       
240}
241
242 }
Note: See TracBrowser for help on using the repository browser.