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

Revision 5993, 6.6 KB checked in by tocholmo, 6 years ago (diff)

viimenen vaihe menossa

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        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kentta);
59
60        ruudut.SetTileMethod(Color.Black, Lisaahirvio);
61        ruudut.SetTileMethod(Color.Rose, LisaaTaso);
62        ruudut.SetTileMethod(Color.Red, LisaaTahti);
63        ruudut.SetTileMethod(Color.Gold, LisaaPelaaja);
64        ruudut.SetTileMethod(Color.DarkGray, LisaaMaali);
65        ruudut.SetTileMethod(Color.Cyan, Lisaahirvio2);
66        ruudut.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
67        Level.CreateBorders();
68        Level.Background.Image = taustakuva;
69    }
70
71    void LisaaTaso(Vector paikka, double leveys, double korkeus)
72    {
73        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
74        taso.Position = paikka;
75        taso.Image = maakuva;
76        taso.Tag = "maa";
77        taso.CollisionIgnoreGroup = 3;
78        Add(taso);
79    }
80
81    void LisaaTahti(Vector paikka, double leveys, double korkeus)
82    {
83        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
84        tahti.IgnoresCollisionResponse = true;
85        tahti.Position = paikka;
86        tahti.Image = tahtiKuva;
87        tahti.Tag = "tahti";
88        Add(tahti);
89    }
90
91    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
92    {
93        pelaaja1 = new PlatformCharacter(leveys, korkeus);
94        pelaaja1.Position = paikka;
95        pelaaja1.Mass = 4.0;
96        pelaaja1.Image = pelaajanKuva;
97        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
98        AddCollisionHandler(pelaaja1, "Jarmo", TormaaShrek);
99        AddCollisionHandler(pelaaja1, "maali", TormaaMaali);
100        pelaaja1.Tag = "Jimmy";
101        Add(pelaaja1);
102    }
103
104    void LisaaNappaimet()
105    {
106        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
107        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
108
109        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
110        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
111        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
112
113        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
114
115        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
116        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
117        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
118
119        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
120    }
121
122    void Liikuta(PlatformCharacter hahmo, double nopeus)
123    {
124        hahmo.Walk(nopeus);
125    }
126
127    void Hyppaa(PlatformCharacter hahmo, double nopeus)
128    {
129
130        hahmo.Jump(nopeus);
131    }
132
133    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
134    {
135        MessageDisplay.Add("PICKED UP DORITOS");
136        tahti.Destroy();
137    }
138    void LisaaMaali(Vector paikka, double leveys, double korkeus)
139    {
140        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
141         maali.Position = paikka;
142      maali.Image = LoadImage("maali");
143      maali.Tag = "maali";
144        Add(maali);
145    }
146
147    void Lisaahirvio(Vector paikka, double leveys, double korkeus)
148    {
149        PhysicsObject Jarmo = new PhysicsObject(leveys, korkeus);
150        Jarmo.Position = paikka;
151        Jarmo.Image = LoadImage("Jarmo");
152        Jarmo.Tag = "Jarmo";
153        Add(Jarmo);
154
155        FollowerBrain seuraajanAivot = new FollowerBrain("Jimmy");
156        Jarmo.Brain = seuraajanAivot;
157        seuraajanAivot.Speed = 100;
158        seuraajanAivot.DistanceFar = 2000;
159        seuraajanAivot.DistanceClose = 2000;
160        seuraajanAivot.StopWhenTargetClose = false;
161        seuraajanAivot.Active = true;
162        Jarmo.CollisionIgnoreGroup = 3;
163
164 
165    }
166    void Lisaahirvio2(Vector paikka, double leveys, double korkeus)
167    {
168        PhysicsObject Illu= new PhysicsObject(leveys *10, korkeus *10);
169        Illu.Position = paikka;
170        Illu.Image = LoadImage("Illu");
171        Illu.Tag = "Jarmo";
172        Illu.Mass = 10.0;
173        Add(Illu, 3);
174
175        FollowerBrain seuraajanAivot = new FollowerBrain("Jimmy");
176        Illu.Brain = seuraajanAivot;
177        seuraajanAivot.Speed = 100;
178        seuraajanAivot.DistanceFar = 2000;
179        seuraajanAivot.DistanceClose = 2000;
180        seuraajanAivot.StopWhenTargetClose = false;
181        seuraajanAivot.Active = true;
182        Illu.CollisionIgnoreGroup = 3;
183
184    }
185   
186    void TormaaShrek(PhysicsObject hahmo, PhysicsObject Jarmo)
187    {
188        hahmo.Destroy();
189        MessageDisplay.Add("GET OUT OF ME SWAMP");
190        rajaytaShrek(Jarmo, LoadImage("Snipe"), 100);
191        rajaytaShrek(Jarmo, LoadImage("Shrekt"), 200);
192        rajaytaShrek(Jarmo, LoadImage("MD"), 100);
193        Timer.SingleShot(3.0, LataaKentta);
194
195       
196    }
197    void TormaaMaali(PhysicsObject pelaaja1, PhysicsObject maali)
198    {
199        seuraavakentta();
200    }
201   
202    void rajaytaShrek(PhysicsObject Jarmo, Image kuva, int pMax)
203    {
204       
205        ExplosionSystem rajahdys = new ExplosionSystem(kuva, pMax);
206        rajahdys.Position = Jarmo.Position;
207
208        Add(rajahdys);
209        rajahdys.AddEffect(Jarmo.X, Jarmo.Y, pMax);
210
211    }
212    void Pelaaja1Tormasi(PhysicsObject pelaaja1, PhysicsObject Jarmo)
213    {
214       
215       
216          LataaKentta();
217       
218}
219
220 }
Note: See TracBrowser for help on using the repository browser.