source: 2010/31/jumijoky/taso1/tasohyppely/tasohyppely/Peli.cs @ 1632

Revision 1632, 6.5 KB checked in by jumijoky, 9 years ago (diff)

Muokattiin ja paranneltiin peliä.

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using System.Collections.Generic;
6
7
8class Tasohyppely : PhysicsGame
9{
10    List<Label> valikonKohdat;
11    const double nopeus = 200;
12    const double hyppyVoima = 1500;
13
14    const int ruudunLeveys = 50;
15    const int ruudunKorkeus = 50;
16
17    IntMeter pelaajan1Pisteet;
18
19
20
21
22
23
24    PlatformCharacter pelaaja1;
25
26    protected override void Begin()
27    {
28
29        Valikko();
30
31    }
32
33    void ValikossaLiikkuminen(AnalogState hiirenTila)
34    {
35        foreach (Label kohta in valikonKohdat)
36        {
37            if (Mouse.IsCursorOn(kohta))
38            {
39                kohta.TextColor = Color.Red;
40            }
41            else
42            {
43                kohta.TextColor = Color.Black;
44            }
45
46        }
47    }
48    void Valikko()
49    {
50        ClearAll();
51        valikonKohdat = new List<Label>();
52
53        Label kohta1 = new Label("Aloita uusi peli");
54        kohta1.Position = new Vector(0, 40);
55        valikonKohdat.Add(kohta1);
56
57        Label kohta2 = new Label("Lopeta");
58        kohta2.Position = new Vector(0, -40);
59        valikonKohdat.Add(kohta2);
60
61        foreach (Label valikonKohta in valikonKohdat)
62        {
63            Add(valikonKohta);
64        }
65
66        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
67        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
68
69        Mouse.IsCursorVisible = true;
70        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
71        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
72    }
73    void AloitaPeli()
74    {
75        ClearAll();
76        Gravity = new Vector(0, -1000);
77        LuoPallo(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), RandomGen.NextColor());
78        LuoKentta();
79        lisaaNappaimet();
80        LisaaLaskurit();
81        //lisaaPelaajat();
82        Camera.Follow(pelaaja1);
83        Camera.ZoomFactor = -500;
84
85        Camera.StayInLevel = true;
86
87        for (int laskuri = 0; laskuri < 10; laskuri++)
88        {
89            LuoPallo(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), RandomGen.NextColor());
90            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
91        }
92    }
93
94    void LuoKentta()
95    {
96        TileMap ruudut = TileMap.FromFile("kentta.txt");
97        ruudut['='] = LuoPalikka;
98        ruudut['1'] = LuoPelaaja1;
99        ruudut['!'] = LuoTahti;
100        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
101    }
102
103    PhysicsObject LuoPalikka()
104    {
105        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
106        return palikka;
107    }
108
109    PhysicsObject LuoPelaaja1()
110    {
111        pelaaja1 = new PlatformCharacter(40.0, 50.0);
112        pelaaja1.Image = LoadImage("Ukko Vasen");
113        pelaaja1.X = 0;
114        pelaaja1.Y = Level.Bottom + 120;
115        pelaaja1.Tag = "pelaaja1";
116        AddCollisionHandler(pelaaja1, KasittelePelaajanTormays);
117        return pelaaja1;
118    }
119
120
121    PhysicsObject LuoTahti()
122    {
123        PhysicsObject tahti = PhysicsObject.CreateStaticObject(50.0, 50.0);
124        tahti.Image = LoadImage("tahti");
125        tahti.Tag = "tahti";
126        return tahti;
127    }
128
129    void KasittelePelaajanTormays(PhysicsObject pelaaja1, PhysicsObject kohde)
130    {
131        if (kohde.Tag.ToString() == "tahti")
132        {
133            pelaajan1Pisteet.Value += 1;
134            kohde.Destroy();
135            if (pelaajan1Pisteet.Value == 4) PeliLapi();
136           
137
138        }
139        if (kohde.Tag.ToString() == "pallo")
140        {
141            pelaaja1.Destroy();
142            Pelihavitty();
143
144           
145        }
146    }
147
148    void LisaaLaskurit()
149    {
150        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
151
152    }
153
154    IntMeter LuoPisteLaskuri(double x, double y)
155    {
156        IntMeter laskuri = new IntMeter(0);
157        laskuri.MaxValue = 4;
158        Label naytto = new Label();
159        naytto.BindTo(laskuri);
160        naytto.X = x;
161        naytto.Y = y;
162        naytto.TextColor = Color.Red;
163        Add(naytto);
164        return laskuri;
165    }
166
167    void lisaaNappaimet()
168    {
169        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
170        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
171
172        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
173        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
174        Keyboard.Listen(Key.NumPad0, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
175
176        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
177
178        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
179        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
180        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
181    }
182
183    void liikuta(PlatformCharacter pelaaja1, double nopeus)
184    {
185        pelaaja1.Walk(nopeus);
186    }
187
188    void hyppaa(PlatformCharacter pelaaja1, double voima)
189    {
190        pelaaja1.Jump(voima);
191    }
192
193
194    void LuoPallo(double x, double y, Color väri)
195    {
196        PhysicsObject pallo = new PhysicsObject(50.0, 50.0);
197        pallo.Shape = Shapes.Circle;
198        pallo.Position = new Vector(x, y);
199        pallo.Color = väri;
200        Add(pallo);
201        pallo.Tag = "pallo";
202        pallo.Restitution = 1.01;
203    }
204
205    void PeliLapi()
206    {
207        ClearAll();
208        Widget Pelilapi = new Widget(1400.0, 2000.0);
209        Pelilapi.Shape = Shapes.Circle;
210        Pelilapi.Position = (Screen.Center);
211        Pelilapi.Image = LoadImage("Pääsit Läpi!!");
212        Add(Pelilapi);
213    }
214    void Pelihavitty()
215    {ClearAll();
216        Widget Pelihavitty = new Widget(1400.0, 2000.0);
217        Pelihavitty.Shape = Shapes.Circle;
218        Pelihavitty.Position = (Screen.Center);
219        Pelihavitty.Image = LoadImage("you failed");
220        Add(Pelihavitty);
221   
222    }
223
224   
225    //protected override void Update(Time time)
226    //{
227       
228        //base.Update(time);
229    //}
230
231    //protected override void Update(Time time)
232    //{
233        //if (pelaaja1.Destroy) pelihavitty();
234        //base.Update(time);
235    //}
236}
237
Note: See TracBrowser for help on using the repository browser.