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

Revision 1631, 7.1 KB checked in by rimapuha, 10 years ago (diff)

Jatkoin NorsuPeliä?

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