source: 2010/30/pyryl/Tasohyppely1/Peli.cs @ 1418

Revision 1418, 6.6 KB checked in by paaaanro, 10 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6
7class Tasohyppely : PhysicsGame
8{
9    const double nopeus = 200;
10    const double hyppyVoima = 4000;
11
12    PlatformCharacter pelaaja1;
13    PlatformCharacter pelaaja2;
14
15
16
17
18    Image paikallaanVasemmalle = LoadImage("ukkeli");
19    Image paikallaanOikealle = LoadImage("ukkeli");
20
21    Image paikallaanVasemmalle2 = LoadImage("ukkeli2");
22    Image paikallaanOikealle2 = LoadImage("ukkeli2");
23
24    Image[] kavelyVasemmalle = LoadImages("ukanvas3", "ukanvas2", "ukanvas1");
25    Image[] kavelyOikealle = LoadImages("ukanoik3", "ukanoik2", "ukanoik1");
26
27    Image[] kavelyVasemmalle2 = LoadImages("uk2anvas3", "uk2anvas2", "uk2anvas1");
28    Image[] kavelyOikealle2 = LoadImages("uk2anoik3", "uk2anoik2", "uk2anoik1");
29
30
31
32
33
34    protected override void Begin()
35    {
36
37        Timer ajastin = new Timer();
38        ajastin.Interval = 2.5;
39        ajastin.Trigger += lisaaPalloja;
40        ajastin.Start();
41
42
43
44
45        Gravity = new Vector(0, -1000);
46
47        luoKentta();
48        lisaaNappaimet();
49
50        Camera.Follow(pelaaja1);
51        Camera.ZoomFactor = 2.0;
52        Camera.StayInLevel = true;
53    }
54
55    void luoKentta()
56    {
57        Level.Height = 4000;
58        Level.CreateBorders();
59        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
60
61
62        lisaaTaso(-250, -1850);
63        lisaaTaso(200, -1850);
64        lisaaTaso(150, -1750);
65        lisaaTaso(-180, -1750);
66        lisaaTaso(0, -1600);
67        lisaaTaso(250, -1500);
68        lisaaTaso(200, -1350);
69        lisaaTaso(120, -1200);
70        lisaaisopallo(0, 1750);
71        lisaaisopallo2(100, 1550);
72        lisaaisopallo(-100, 1550);
73
74
75        lisaavesi();
76
77
78       
79        lisaaisopallo(-200, -900);
80        lisaaisopallo(-400, -900);
81
82
83
84        lisaaTaso2(100, -1050);
85        lisaaTaso2(-100, -900);
86
87
88        lisaaPelaajat();
89    }
90
91    void lisaaTaso(double x, double y)
92    {
93        PhysicsObject taso = PhysicsObject.CreateStaticObject(200, 20);
94        taso.Color = Color.Aqua;
95        taso.X = x;
96        taso.Y = y;
97        Add(taso);
98
99    }
100
101
102    void lisaaTaso2(double x, double y)
103    {
104        PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 10);
105        taso.Color = Color.Blue;
106        taso.X = x;
107        taso.Y = y;
108        Add(taso);
109    }
110
111    void lisaaPelaajat()
112    {
113        pelaaja1 = new PlatformCharacter(40, 40);
114        pelaaja1.Mass = 4.0;
115        pelaaja1.Image = LoadImage("ukkeli");
116        pelaaja1.X = 0;
117        pelaaja1.Y = Level.Bottom + 120;
118        pelaaja1.LeftIdleAnimation = new Animation(paikallaanVasemmalle);
119        pelaaja1.RightIdleAnimation = new Animation(paikallaanOikealle);
120
121        pelaaja1.LeftWalkingAnimation = new Animation(kavelyVasemmalle);
122        pelaaja1.RightWalkingAnimation = new Animation(kavelyOikealle);
123
124        Add(pelaaja1);
125
126        pelaaja2 = new PlatformCharacter(40, 40);
127        pelaaja2.Mass = 4.0;
128        pelaaja2.Image = LoadImage("ukkeli2");
129        pelaaja2.X = 40;
130        pelaaja2.Y = Level.Bottom + 120;
131
132        pelaaja2.LeftIdleAnimation = new Animation(paikallaanVasemmalle2);
133        pelaaja2.RightIdleAnimation = new Animation(paikallaanOikealle2);
134
135        pelaaja2.LeftWalkingAnimation = new Animation(kavelyVasemmalle2);
136        pelaaja2.RightWalkingAnimation = new Animation(kavelyOikealle2);
137
138
139        Add(pelaaja2);
140    }
141
142    void lisaaNappaimet()
143    {
144        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
145        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
146
147        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
148        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
149        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
150
151        Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
152        Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja2, nopeus);
153        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
154
155
156        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
157
158        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
159        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
160        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
161    }
162
163    void liikuta(PlatformCharacter hahmo, double nopeus)
164    {
165        hahmo.Walk(nopeus);
166    }
167
168    void hyppaa(PlatformCharacter hahmo, double voima)
169    {
170        hahmo.Jump(voima);
171    }
172    void lisaaPalloja(Timer sender)
173    {
174        PhysicsObject pallo = new PhysicsObject(30, 30);
175        pallo.Shape = Shapes.Circle;
176        pallo.Color = Color.Black;
177        pallo.Mass = 1;
178        pallo.X = 0;
179        pallo.Y = 1950;
180        Add(pallo);
181        Vector impulssi = new Vector(0.0, 10.0);
182        pallo.Hit(impulssi);
183        AddCollisionHandler(pallo, KasittelePallonTormays);
184
185
186
187    }
188
189    void ajastinLaukesi()
190    {
191   
192    }
193    void lisaaisopallo(double X, double Y)
194    {
195        PhysicsObject isopallo = PhysicsObject.CreateStaticObject(100, 100);
196        isopallo.Shape = Shapes.Triangle;
197        isopallo.Color = Color.Cyan;
198        isopallo.X = X;
199        isopallo.Y = Y;
200        isopallo.AngularVelocity = 2.0;
201
202        Add(isopallo);
203    }
204    void lisaaisopallo2(double X, double Y)
205    {
206        PhysicsObject isopallo2 = PhysicsObject.CreateStaticObject(100, 100);
207        isopallo2.Shape = Shapes.Triangle;
208        isopallo2.Color = Color.Fuchsia;
209        isopallo2.X = X;
210        isopallo2.Y = Y;
211        isopallo2.AngularVelocity = 2.0;
212
213        Add(isopallo2);
214    }
215    void lisaavesi()
216    {
217        PhysicsObject vesi = new PhysicsObject(1000, 1000);
218        vesi.Color = Color.Blue;
219        vesi.X = 0;
220        vesi.Y = -3500;
221        Add(vesi);
222
223        vesi.Move(new Vector(0, 1000));
224        vesi.IgnoresCollisionResponse = true;
225
226
227    }
228    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde)
229    {
230        Explosion rajahdys = new Explosion(200);
231        rajahdys.Position = pallo.Position;
232        rajahdys.Speed = 500.0;
233        rajahdys.Force = 10000;
234
235        Add(rajahdys);
236    }
237
238   
239}
Note: See TracBrowser for help on using the repository browser.