source: 2010/31/rimapuha/NorsuPeli/NorsuPeli/Peli.cs @ 1691

Revision 1691, 8.2 KB checked in by rimapuha, 9 years ago (diff)

chj

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using System.Collections.Generic;
6
7class Tasohyppely : PhysicsGame
8{
9    const double nopeus = 380;
10    const double hyppyVoima = 4000;
11    const int ruudunLeveys = 50;
12    const int ruudunKorkeus = 50;
13
14    IntMeter pisteLaskuri;
15
16    void LuoLaskuri()
17    {
18        pisteLaskuri = new IntMeter(0);
19
20        Label pisteNaytto = new Label();
21        pisteNaytto.X = Screen.Left + 100;
22        pisteNaytto.Y = Screen.Top - 100;
23        pisteNaytto.TextColor = Color.Red;
24        pisteNaytto.BindTo(pisteLaskuri);
25        Add(pisteNaytto);
26
27        Label pisteTeksti = new Label("Pisteitä: ");
28        pisteTeksti.X = Screen.Left + 50;
29        pisteTeksti.Y = Screen.Top - 100;
30        pisteTeksti.TextColor = Color.Red;
31        Add(pisteTeksti);
32
33
34    }
35
36    void laskuriYlarajassa(int arvo)
37    {
38        MessageDisplay.TextColor = Color.Black;
39        MessageDisplay.Add("Voitit pelin");
40    }
41
42
43    PlatformCharacter pelaaja1;
44   // PlatformCharacter pelaaja2;
45
46    Image tahtiKuva = LoadImage("Untitled"); 
47    //Image taustaKuva = LoadImage("taustagraffiti");
48
49    List<Label> valikonKohdat;
50
51    void Valikko()
52    {
53        ClearAll();
54        valikonKohdat = new List<Label>();
55
56        Label kohta1 = new Label("Aloita uusi peli");
57        kohta1.Position = new Vector(0, 40);
58        valikonKohdat.Add(kohta1);
59
60        /*Label kohta2 = new Label("High Scores");
61        kohta2.Position = new Vector(0, 40);
62        valikonKohdat.Add(kohta2);
63        */
64         
65        Label kohta2 = new Label("Lopeta");
66        kohta2.Position = new Vector(0, -40);
67        valikonKohdat.Add(kohta2);
68
69        foreach (Label valikonKohta in valikonKohdat)
70        {
71            Add(valikonKohta);
72        }
73
74        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
75        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Lopeta, null);
76
77        Mouse.IsCursorVisible = true;
78        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
79        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, "Lopeta");
80
81    }
82
83    void ValikossaLiikkuminen(AnalogState hiirenTila)
84    {
85        foreach (Label kohta in valikonKohdat)
86        {
87            if (Mouse.IsCursorOn(kohta))
88            {
89                kohta.TextColor = Color.Red;
90            }
91            else
92            {
93                kohta.TextColor = Color.Black;
94            }
95
96        }
97    }
98
99    void AloitaPeli()
100    {
101        ClearAll();
102
103        Gravity = new Vector(0, -1000);
104
105        LuoKentta();
106        LuoLaskuri();
107        Camera.ZoomToLevel();
108        lisaaNappaimet();
109        Camera.Follow(pelaaja1);
110        Camera.ZoomFactor = 1.5;
111        Camera.StayInLevel = true;
112       // Level.Background.Image = taustaKuva;
113
114
115       
116    }
117
118    void Lopeta()
119    {
120        Exit();
121    }
122
123    //HighScoreList dddtopLista;
124
125
126
127    protected override void Begin()
128    {
129        /*
130        topLista = HighScoreList.LoadOrCreate("topten.dat", 10);
131        topLista.Show(pistemaara);
132        topLista.ScreenList.ItemColor = Color.Red;
133        topLista.ScreenList.BackGroundColor = Color.Black;
134         */
135        Valikko();
136
137    }
138
139
140    void HeitaKranaatti(PlatformCharacter pelaaja)
141    {
142        Grenade kranaatti = new Grenade(4.0);
143        kranaatti.X = pelaaja.X + 10;
144        kranaatti.Y = pelaaja.Y + 10;
145        kranaatti.Image = LoadImage("kranaatti2");
146        Add(kranaatti);
147        Vector heittoVoima = Vector.FromLengthAndAngle(4000, Angle.Degrees(45));
148        kranaatti.Hit(heittoVoima);
149    }
150
151    void LuoKentta()
152    {
153        //Image taustaKuva = LoadImage("taustagraffiti");
154        TileMap ruudut = TileMap.FromFile("kentta.txt");
155        ruudut['='] = LuoPalikka;
156        ruudut['*'] = LuoTahti;
157        ruudut['+'] = LuoValeseina;
158        ruudut['1'] = LuoPelaaja1;
159        //ruudut['2'] = LuoPelaaja2;
160        ruudut['0'] = LuoMaali;
161        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
162    }
163
164    PhysicsObject LuoPalikka()
165    {
166        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50, 50);
167        palikka.Image = LoadImage ("tiili");
168        return palikka;
169    }
170
171    GameObject LuoValeseina()
172    {
173        GameObject valeseina = new GameObject(50, 50);
174        valeseina.Image = LoadImage("tiili");
175        return valeseina;
176    }
177
178    PhysicsObject LuoTahti()
179    {
180        PhysicsObject tahti = PhysicsObject.CreateStaticObject(25.0, 25.0);
181        tahti.Image = LoadImage("piste");
182        AddCollisionHandler(tahti, Tormays);
183
184        return tahti;
185    }
186    PhysicsObject LuoMaali()
187    {
188        PhysicsObject maali = PhysicsObject.CreateStaticObject(50.0, 50.0);
189       
190        maali.Image = LoadImage("maali2");
191        AddCollisionHandler(maali, Tormays2);
192
193        return maali;
194    }
195
196
197    void Tormays(PhysicsObject tahti, PhysicsObject kohde)
198    {
199        if (kohde == pelaaja1)
200
201        //MessageDisplay.Add("Sait pisteen!!!");
202        pisteLaskuri.Value += 1;
203        tahti.Destroy();
204    }
205    void Tormays2(PhysicsObject maali, PhysicsObject kohde)
206    {
207        if (kohde == pelaaja1 && pisteLaskuri.Value >= 20)
208        {
209            ClearAll();
210            PlaySound("maali");
211            MessageDisplay.Add("Voitit pelin!!!");
212            Valikko();
213        }
214    }
215
216   
217    PhysicsObject LuoPelaaja1()
218    {
219        pelaaja1 = new PlatformCharacter(50, 40);
220        pelaaja1.Mass = 5.0;
221        pelaaja1.Image = LoadImage("lintu-1 kavelee");
222        //pelaaja1.CanRotate = true;
223
224        return (PhysicsObject)pelaaja1;
225    }
226
227
228    /*PhysicsObject LuoPelaaja2()
229    {
230        pelaaja2 = new PlatformCharacter(40, 40);
231        pelaaja2.Mass = 4.0;
232        pelaaja2.Image = LoadImage("norsu2");
233        return (PhysicsObject)pelaaja2;
234    }
235    */
236
237    void lisaaNappaimet()
238    {
239        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
240        //Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
241        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
242
243        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
244        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
245        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
246
247        //Keyboard.Listen(Key.Down, ButtonState.Down, HeitaKranaatti, "Heitä kranaatti", pelaaja1);
248
249        //Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
250        //Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja2, nopeus);
251        //Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
252
253        //Keyboard.Listen(Key.S, ButtonState.Down, HeitaKranaatti, "Heitä kranaatti", pelaaja2);
254
255
256        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
257
258        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
259        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
260        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
261        //ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, HeitaKranaatti, "heittää kranaatin", pelaaja1);
262    }
263
264
265
266    void liikuta(PlatformCharacter hahmo, double nopeus)
267    {
268        if (hahmo.FacingDirection == Direction.Left) 
269        {
270            hahmo.Image = LoadImage("lintu-1 kavelee2"); 
271        }
272
273        else if (hahmo.FacingDirection == Direction.Right)
274        {
275            hahmo.Image = LoadImage("lintu-1 kavelee");
276        }
277
278       
279        hahmo.Walk(nopeus);
280
281       
282    }
283
284    void hyppaa(PlatformCharacter hahmo, double voima)
285    {
286        if (hahmo.FacingDirection == Direction.Up)
287        {
288            hahmo.Image = LoadImage("lintu-1 hyppaa");
289        }
290        hahmo.Jump(voima);
291    }
292}
Note: See TracBrowser for help on using the repository browser.