source: 2010/23/aaolluuk/ApinaJaBanaani 2/Peli.cs @ 685

Revision 685, 8.2 KB checked in by aaolluuk, 11 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6
7namespace ApinaJaBanaani_2
8{
9    class Tasohyppely : PhysicsGame
10    {
11        const double nopeus = 200;
12        const double hyppyVoima = 4000;
13
14        IntMeter pisteLaskuri;
15        ValueDisplay pisteNaytto;
16
17        PlatformCharacter pelaaja1;
18
19        int kenttaNro; // monesko kenttä on menossa
20
21        protected override void Begin()
22        {
23            kenttaNro = 0;
24            Level.Width = 2000;
25            Level.Height = 1000;
26
27            // Zoomataan lähemmäksi
28            Camera.ZoomFactor = 2.0;
29
30            Camera.StayInLevel = true;
31
32            seuraavaKentta();
33            MessageDisplay.Add("Etsi reitti kotiin!");
34        }
35        void seuraavaKentta()
36        {
37            ClearAll();
38
39            // Luodaan pistelaskuri
40            pisteLaskuri = new IntMeter(0);
41
42            // luodaan pistelaskunäyttö
43            pisteNaytto = new ValueDisplay();
44            pisteNaytto.Text = "Pisteitä: ";
45            pisteNaytto.X = Screen.RightSafe - 250;
46            pisteNaytto.Y = Screen.TopSafe - 50;
47            pisteNaytto.BindTo(pisteLaskuri);
48            // lisätään peliin
49            pisteNaytto.ValueColor = Color.White;
50            Add(pisteNaytto);
51
52            pisteLaskuri.Reset();
53
54            kenttaNro += 1; // lisätään kenttänumeroa yhdellä
55            MessageDisplay.Add("Kenttä " + kenttaNro);
56
57            // Asetetaan painovoima
58            Gravity = new Vector(0, -1000);
59
60            luoKentta();
61            lisaaNappaimet();
62            Camera.Follow(pelaaja1);
63        }
64        void luoKentta()
65        {
66            Level.CreateBorders();
67            Level.Background.CreateGradient(Color.White, Color.Black);
68
69            lisaaTaso(-200, -350);
70            lisaaTaso(0, -200);
71            lisaaTaso(250, -150);
72            lisaaTaso(520, -50);
73            lisaaTaso(260, -150);
74            lisaaTaso(550, 100);
75            lisaaTaso(500, 200);
76            lisaaTaso(640, 100);
77            lisaaTaso(350, 300);
78            lisaaTaso(225, 250);
79            lisaaTaso(100, 200);
80            lisaaTaso(-210, 250);
81            lisaaTaso(-480, 200);
82            lisaaTaso(-480, 50);
83            lisaaTaso(-650, 100);
84
85            lisaaTaso(-500, -450);
86            lisaaTaso(-500, -480);
87            lisaaTaso(-300, -450);
88            lisaaTaso(-300, -480);
89            lisaaTaso(-200, -480);
90            lisaaTaso(-100, -480);
91            lisaaTaso(0, -450);
92            lisaaTaso(0, -480);
93            lisaaTaso(200, -450);
94            lisaaTaso(200, -480);
95            lisaaTaso(400, -450);
96            lisaaTaso(400, -480);
97            lisaaTaso(600, -450);
98            lisaaTaso(600, -480);
99
100
101            LisaaPiikkiaita(-400, -480);
102            LisaaPiikkiaita(100, -480);
103            LisaaPiikkiaita(300, -480);
104            LisaaPiikkiaita(500, -480);
105
106
107            LisaaBanaani(-200, -329);
108            LisaaBanaani(0, -179);
109            LisaaBanaani(250, -129);
110            LisaaBanaani(520, -29);
111            LisaaBanaani(500, 221);
112            LisaaBanaani(640, 121);
113            LisaaBanaani(350, 321);
114            LisaaBanaani(100, 221);
115            LisaaBanaani(-480, 71);
116            LisaaBanaani(-480, 221);
117            LisaaBanaani(-210, 271);
118            LisaaBanaani(0, 0);
119            LisaaBanaani(200, 0);
120            LisaaBanaani(-200, 0);
121            LisaaBanaani(-200, -200);
122            LisaaBanaani(0, -300);
123            LisaaBanaani(150, -300);
124            LisaaBanaani(300, -300);
125            LisaaBanaani(450, -300);
126            LisaaBanaani(600, -300);
127            LisaaBanaani(450, -150);
128            LisaaBanaani(600, -150);
129           
130
131
132            LisaaAave(225, 290);
133            LisaaAave(300, 150);
134            LisaaAave(-100, 100);
135            LisaaAave(120, -150);
136            LisaaAave(-380, -150);
137
138
139            lisaaMaali();
140            lisaaPelaajat();
141        }
142        void lisaaTaso(double x, double y)
143        {
144            PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 30);
145            taso.Color = Color.Brown;
146            taso.X = x;
147            taso.Y = y;
148            Add(taso);
149        }
150        void lisaaPelaajat()
151        {
152            pelaaja1 = new PlatformCharacter(40, 40);
153            pelaaja1.Mass = 4.0;
154            pelaaja1.Image = LoadImage("Apina");
155            pelaaja1.X = 0;
156            pelaaja1.Y = Level.Bottom + 120;
157
158            AddCollisionHandler(pelaaja1, osuiMaaliin);
159
160            Add(pelaaja1);
161        }
162        void lisaaMaali()
163        {
164            PhysicsObject maali = PhysicsObject.CreateStaticObject(100, 100, Shapes.Circle);
165            maali.Tag = "maali";
166            maali.IgnoresCollisionResponse = true;
167            maali.X = -650;
168            maali.Y = 150;
169            maali.Image = LoadImage("Talo");
170            Add(maali);
171        }
172        void lisaaNappaimet()
173        {
174            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
175            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
176
177            Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
178            Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
179            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
180
181            lisaaGamePadNappaimet(ControllerOne);
182        }
183        void lisaaGamePadNappaimet(GamePad controller)
184        {
185            controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
186
187            controller.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
188            controller.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
189            controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
190        }
191        void liikuta(PlatformCharacter hahmo, double nopeus)
192        {
193            hahmo.Walk(nopeus);
194        }
195        void hyppaa(PlatformCharacter hahmo, double voima)
196        {
197            hahmo.Jump(voima);
198        }
199        void osuiMaaliin(PhysicsObject pelaaja, PhysicsObject kohde)
200        {
201            if (kohde.Tag.ToString() == "maali")
202            {
203                this.PlaySound("maali");
204                int edellisenKentanPisteet = pisteLaskuri.Value;
205                seuraavaKentta();
206                MessageDisplay.Add("Onnittelut..pääsit kentän läpi  " + kenttaNro + ". Pisteitä: " + edellisenKentanPisteet);
207            }
208            if (kohde.Tag.ToString() == "banaani")
209            {
210                kohde.Destroy();
211                pisteLaskuri.Value++;
212            }
213            if (kohde.Tag.ToString() == "piikkiaita")
214            {
215                pelaaja.Destroy();
216                seuraavaKentta();
217           }
218           if (kohde.Tag.ToString() == "Aave")
219           {
220                pelaaja.Destroy();
221                seuraavaKentta();
222           }
223       
224        }
225            void LisaaAave (double x, double y)
226        {
227             PhysicsObject Aave = PhysicsObject.CreateStaticObject(30, 60);
228             Aave.Tag = "Aave";
229             Aave.X = x;
230             Aave.Y = y;
231             Aave .Image = LoadImage("Aave");
232             Add (Aave);
233        }
234        void LisaaBanaani (double x, double y)
235        {
236             PhysicsObject Banaani = PhysicsObject.CreateStaticObject(30, 10);
237             Banaani.Tag = "banaani";
238             Banaani.X = x;
239             Banaani.Y = y;
240             Banaani.Image = LoadImage("Banaani");
241             Add(Banaani);
242        }
243            void LisaaPiikkiaita (double x, double y)
244        {
245            PhysicsObject Piikkiaita = PhysicsObject.CreateStaticObject(100, 30);
246            Piikkiaita.Tag = "piikkiaita";
247            Piikkiaita.X = x;
248            Piikkiaita.Y = y;
249            Piikkiaita.Image = LoadImage("Piikkiaita");
250            Add(Piikkiaita);
251        }
252       
253       
254        }
255 
256}
Note: See TracBrowser for help on using the repository browser.