source: 2016/27/JamiR/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 7965

Revision 7965, 6.4 KB checked in by jajejora, 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 Tasohyppelypeli1 : PhysicsGame
10{ 
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14   
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("paikallaan");
19    Image tahtiKuva = LoadImage("tahti");
20    Image LepakonKuva = LoadImage("bat");
21    Animation kävelyanimaatio;
22    Animation hyppyanimaatio;
23    Image tasonKuva = LoadImage("Untitled");
24    Animation vihukävely;
25    Animation PortaalinAnimaatio;
26   
27
28
29   
30
31    SoundEffect maaliAani = LoadSoundEffect("maali");
32
33    public override void Begin()
34    {
35        kävelyanimaatio = LoadAnimation("animaatio");
36        hyppyanimaatio = LoadAnimation("hyppyanimaatio");
37        vihukävely = LoadAnimation("vihuanimaatio");
38        PortaalinAnimaatio = LoadAnimation("Portaali");
39        Gravity = new Vector(0.0, -1000.0);
40        IsFullScreen = true;
41
42
43        LuoKentta();
44        LisaaNappaimet();
45
46        Camera.Follow(pelaaja1);
47        Camera.ZoomFactor = 2;
48        Camera.StayInLevel = true;
49       
50    }
51
52    void LuoKentta()
53    {
54        TileMap kentta = TileMap.FromLevelAsset("kentta1");
55        kentta.SetTileMethod('#', LisaaTaso);
56        kentta.SetTileMethod('*', LisaaTahti);
57        kentta.SetTileMethod('N', LisaaPelaaja);
58        kentta.SetTileMethod('K', LisaaKissa);
59        kentta.SetTileMethod('L', LisaaLepakko);
60        kentta.SetTileMethod('P', LisaaPortaali);
61        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
62        Level.CreateBorders();
63        Level.Background.CreateGradient(Color.Black, Color.SkyBlue);
64    }
65
66    void LisaaTaso(Vector paikka, double leveys, double korkeus)
67    {
68        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
69        taso.Position = paikka;
70        taso.Color = Color.Green;
71        taso.Image = tasonKuva;
72        Add(taso);
73    }
74
75    void LisaaTahti(Vector paikka, double leveys, double korkeus)
76    {
77        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
78        tahti.IgnoresCollisionResponse = true;
79        tahti.Position = paikka;
80        tahti.Image = tahtiKuva;
81        tahti.Tag = "tahti";
82        Add(tahti);
83    }
84
85    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
86    {
87        pelaaja1 = new PlatformCharacter(leveys, korkeus);
88        pelaaja1.Position = paikka;
89        pelaaja1.Mass = 4.0;
90        pelaaja1.AnimWalk = kävelyanimaatio;
91        pelaaja1.AnimIdle = new Animation(pelaajanKuva);
92        pelaaja1.AnimJump = hyppyanimaatio;
93        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
94        AddCollisionHandler(pelaaja1, "kissa", TormaaKissaan);
95        AddCollisionHandler(pelaaja1, "Lepakko", TormaaLepakkoon);
96        AddCollisionHandler(pelaaja1, "Portaali", TormaaPortaaliin);
97        Add(pelaaja1);
98
99
100        {
101
102        }
103    }
104
105    void LisaaKissa(Vector paikka, double leveys, double korkeus)
106    {
107        PlatformCharacter kissa = new PlatformCharacter(60, 60);
108
109        kissa.Tag = "kissa";
110        kissa.Position = paikka;
111        kissa.AnimWalk = vihukävely;
112        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
113        tasoAivot.Speed = 100;
114        kissa.Brain = tasoAivot;
115        kissa.CollisionIgnoreGroup = 2;
116        Add(kissa);
117    }
118
119    void LisaaLepakko(Vector paikka, double leveys, double korkeus)
120
121    {
122        PhysicsObject Lepakko = new PhysicsObject(60, 60);
123       
124        Lepakko.Tag = "Lepakko";
125        Lepakko.Image = LepakonKuva;
126        Lepakko.Position = paikka;
127        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
128        satunnaisAivot.Speed = 400;
129        satunnaisAivot.ChangeMovementSeconds = 2;
130        Lepakko.Brain = satunnaisAivot;
131        Lepakko.CollisionIgnoreGroup = 2;
132        Lepakko.CanRotate = false;
133        Add(Lepakko);
134    }
135
136    void LisaaPortaali(Vector paikka, double leveys, double korkeus)
137    {
138        PlatformCharacter Portaali = new PlatformCharacter(50, 90);     
139        Portaali.Tag = "Portaali";
140        Portaali.Position = paikka;
141        Portaali.CollisionIgnoreGroup = 2;
142
143        Portaali.AnimIdle = PortaalinAnimaatio;
144        Add(Portaali);
145
146
147
148
149
150    }
151
152    void LisaaNappaimet()
153    {
154        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
155        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
156
157        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
158        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
159        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
160        Keyboard.Listen(Key.R, ButtonState.Pressed, Alusta, "Pelaaja hyppää");
161
162        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
163
164        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
165        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
166        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
167
168
169        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
170    }
171     
172
173    void Liikuta(PlatformCharacter hahmo, double nopeus)
174    {
175        hahmo.Walk(nopeus);
176    }
177
178    void Hyppaa(PlatformCharacter hahmo, double nopeus)
179    {
180        hahmo.Jump(nopeus);
181    }
182
183    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
184    {
185        maaliAani.Play();
186        MessageDisplay.Add("Keräsit tähden!");
187        tahti.Destroy();
188    }
189
190
191    void TormaaKissaan(PhysicsObject hahmo, PhysicsObject kissa)
192    {
193        pelaaja1.Destroy();
194        ClearAll();
195        Begin();
196
197    }
198
199    void TormaaLepakkoon(PhysicsObject hahmo, PhysicsObject Lepakko)
200    {
201        pelaaja1.Destroy();
202        ClearAll();
203        Begin();
204    }
205
206    void Alusta()
207    {
208        ClearAll();
209        Begin();
210
211    }
212
213    void TormaaPortaaliin(PhysicsObject hahmo, PhysicsObject Portaali)
214    {
215       
216
217    }
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244    }
Note: See TracBrowser for help on using the repository browser.