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

Revision 1663, 7.5 KB checked in by rimapuha, 9 years ago (diff)

Muokkasin 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.5;
109        Camera.StayInLevel = true;
110
111       
112    }
113
114    void Lopeta()
115    {
116        Exit();
117    }
118
119    //HighScoreList dddtopLista;
120    protected override void Begin()
121    {
122        /*
123        topLista = HighScoreList.LoadOrCreate("topten.dat", 10);
124        topLista.Show(pistemaara);
125        topLista.ScreenList.ItemColor = Color.Red;
126        topLista.ScreenList.BackGroundColor = Color.Black;
127         * */
128        Valikko();
129
130    }
131
132
133    void HeitaKranaatti(PlatformCharacter pelaaja)
134    {
135        Grenade kranaatti = new Grenade(4.0);
136        kranaatti.X = pelaaja.X + 10;
137        kranaatti.Y = pelaaja.Y + 10;
138        kranaatti.Image = LoadImage("kranaatti2");
139        Add(kranaatti);
140        Vector heittoVoima = Vector.FromLengthAndAngle(4000, Angle.Degrees(45));
141        kranaatti.Hit(heittoVoima);
142    }
143
144    void LuoKentta()
145    {
146        TileMap ruudut = TileMap.FromFile("kentta.txt");
147        ruudut['='] = LuoPalikka;
148        ruudut['*'] = LuoTahti;
149        ruudut['+'] = LuoValeseina;
150        ruudut['1'] = LuoPelaaja1;
151        //ruudut['2'] = LuoPelaaja2;
152        ruudut['0'] = LuoMaali;
153        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
154    }
155
156    PhysicsObject LuoPalikka()
157    {
158        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50, 50);
159        palikka.Image = LoadImage ("seina");
160        return palikka;
161    }
162
163    GameObject LuoValeseina()
164    {
165        GameObject valeseina = new GameObject(50, 50);
166        valeseina.Image = LoadImage("valeseina");
167        return valeseina;
168    }
169
170    PhysicsObject LuoTahti()
171    {
172        PhysicsObject tahti = PhysicsObject.CreateStaticObject(25.0, 25.0);
173        tahti.Image = LoadImage("piste");
174        AddCollisionHandler(tahti, Tormays);
175
176        return tahti;
177    }
178    PhysicsObject LuoMaali()
179    {
180        PhysicsObject maali = PhysicsObject.CreateStaticObject(50.0, 50.0);
181        maali.Image = LoadImage("maali2");
182        AddCollisionHandler(maali, Tormays2);
183
184        return maali;
185    }
186
187
188    void Tormays(PhysicsObject tahti, PhysicsObject kohde)
189    {
190        if (kohde == pelaaja1)
191
192        MessageDisplay.Add("Sait pisteen!!!");
193        pisteLaskuri.Value += 1;
194        tahti.Destroy();
195    }
196    void Tormays2(PhysicsObject maali, PhysicsObject kohde)
197    {
198        if (kohde == pelaaja1 && pisteLaskuri.Value >= 80)
199        {
200            ClearAll();
201            MessageDisplay.Add("Voitit pelin!!!");
202            Valikko();
203        }
204    }
205
206   
207    PhysicsObject LuoPelaaja1()
208    {
209        pelaaja1 = new PlatformCharacter(40, 40);
210        pelaaja1.Mass = 4.0;
211        pelaaja1.Image = LoadImage("norsu");
212        return (PhysicsObject)pelaaja1;
213    }
214
215
216  //PhysicsObject LuoPelaaja2()
217  //{
218  //    pelaaja2 = new PlatformCharacter(40, 40);
219  //    pelaaja2.Mass = 4.0;
220  //    pelaaja2.Image = LoadImage("norsu2");
221  //    return (PhysicsObject)pelaaja2;
222  //}
223
224
225    void lisaaNappaimet()
226    {
227        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
228        //Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
229        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
230
231        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
232        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
233        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
234
235        Keyboard.Listen(Key.Down, ButtonState.Down, HeitaKranaatti, "Heitä kranaatti", pelaaja1);
236
237        //Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
238        //Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja2, nopeus);
239        //Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
240
241        //Keyboard.Listen(Key.S, ButtonState.Down, HeitaKranaatti, "Heitä kranaatti", pelaaja2);
242
243
244        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
245
246        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
247        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
248        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
249        ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, HeitaKranaatti, "heittää kranaatin", pelaaja1);
250    }
251
252
253
254    void liikuta(PlatformCharacter hahmo, double nopeus)
255    {
256        hahmo.Walk(nopeus);
257    }
258
259    void hyppaa(PlatformCharacter hahmo, double voima)
260    {
261        hahmo.Jump(voima);
262    }
263}
Note: See TracBrowser for help on using the repository browser.