source: 2010/23/jealmaki/Save The Civilians/Peli.cs @ 689

Revision 689, 7.0 KB checked in by jealmaki, 12 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.ScreenObjects;
5using Jypeli.Assets;
6
7
8namespace Save_The_Civilians
9{
10    class Tasohyppely : PhysicsGame
11    {
12        const double nopeus = 300;
13        const double hyppyVoima = 1000;
14
15        const int ruudunLeveys = 50;
16        const int ruudunKorkeus = 50;
17
18        IntMeter pisteLaskuri;
19        ValueDisplay pisteNaytto;
20
21        PlatformCharacter pelaaja1;
22
23        int kenttaNro; // monesko kenttä on menossa
24
25
26        protected override void Begin()
27        {
28            kenttaNro = 0;
29            Level.Width = 2000;
30            Level.Height = 2000;
31
32
33           
34
35           
36           
37
38            Camera.Zoom(0.5);
39            Camera.Follow(pelaaja1);
40
41            seuraavaKentta();
42            MessageDisplay.Add("Etsi olio!");
43        }
44
45        void LuoKolmio(double leveys, double korkeus, int x, int y)
46        {
47            PhysicsObject kolmio = new PhysicsObject(leveys, korkeus);
48            kolmio.Shape = Shapes.Triangle;
49            kolmio.X = x;
50            kolmio.Y = y;
51            Add(kolmio);
52        }
53
54        void seuraavaKentta()
55        {
56            ClearAll();
57
58            // Luodaan pistelaskuri
59            pisteLaskuri = new IntMeter(0);
60
61            // luodaan pistelaskunäyttö
62            pisteNaytto = new ValueDisplay();
63            pisteNaytto.Text = "Pisteitä: ";
64            pisteNaytto.X = Screen.RightSafe - 250;
65            pisteNaytto.Y = Screen.TopSafe - 50;
66            pisteNaytto.BindTo(pisteLaskuri);
67            Add(pisteNaytto);    // lisätään peliin
68            pisteNaytto.ValueColor = Color.Red;
69            pisteNaytto.TextColor = Color.Red;
70            pisteLaskuri.Reset();
71
72            kenttaNro += 1; // lisätään kenttänumeroa yhdellä
73            MessageDisplay.Add("Kenttä " + kenttaNro);
74
75            // Asetetaan painovoima
76            Gravity = new Vector(0, -1000);
77
78            luoKentta();
79            lisaaNappaimet();
80            Camera.Follow(pelaaja1);
81        }
82
83        void luoKentta()
84        {
85            Level.Background.CreateGradient(Color.Green, Color.Black);
86            //Level.CreateBorders();
87           
88
89            var merkit = new Dictionary<char, ObjectCreator>();
90            merkit['x'] = LuoPalikka;
91            merkit['d'] = LuoOlio;
92            merkit['r'] = LuoRaha;
93            merkit['p'] = LuoPelaaja1;
94            merkit['i'] = LuoPalikka2;
95            merkit['e'] = LuoVihollinen;
96            merkit['m'] = LuoPalikka3;
97            merkit['s'] = LuoSiviili;
98            char[,] ruudut = Tiles.ReadFromFile("TextFile1.txt");
99            Tiles.Insert(this, ruudut, merkit, ruudunLeveys, ruudunKorkeus);
100           
101       
102
103            lisaaMaali();
104            lisaaEsine();
105        }
106
107        PhysicsObject LuoOlio()
108        {
109            PhysicsObject olio = PhysicsObject.CreateStaticObject(30.0, 30.0);
110            olio.Shape = Shapes.Rectangle;
111            olio.Color = Color.Black;
112            return olio;
113
114        }
115
116        PhysicsObject LuoSiviili()
117        {
118            PhysicsObject Siviili = PhysicsObject.CreateStaticObject(100.0, 100.0);
119            Siviili.Shape = Shapes.Rectangle;
120            Siviili.Color = Color.Gray;
121            Siviili.Image = LoadImage("Siviili");
122            return Siviili;
123        }
124
125        PhysicsObject LuoVihollinen()
126        {
127            PhysicsObject Vihollinen = PhysicsObject.CreateStaticObject(100.0, 100.0);
128            Vihollinen.Shape = Shapes.Rectangle;
129            Vihollinen.Color = Color.Gray;
130            Vihollinen.Image = LoadImage("Alieeni");
131            return Vihollinen;
132        }
133
134        PhysicsObject LuoPalikka()
135        {
136            PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
137            palikka.Shape = Shapes.Rectangle;
138            palikka.Color = Color.Gray;
139            return palikka;
140
141        }
142
143        PhysicsObject LuoPalikka2()
144        {
145            PhysicsObject Palikka2 = PhysicsObject.CreateStaticObject(100.0, 50.0);
146            Palikka2.Shape = Shapes.Rectangle;
147            Palikka2.Color = Color.Gray;
148            Palikka2.IsVisible = false;
149           
150            return Palikka2;
151
152
153        }
154        PhysicsObject LuoPalikka3()
155        {
156            PhysicsObject Palikka3 = PhysicsObject.CreateStaticObject(50.0, 50.0);
157            Palikka3.Shape = Shapes.Rectangle;
158            Palikka3.Color = Color.Green;
159            return Palikka3;
160        }
161
162        PhysicsObject LuoRaha()
163        {
164            PhysicsObject Raha = PhysicsObject.CreateStaticObject(50.0, 50.0);
165            Raha.Shape = Shapes.Rectangle;
166            Raha.Color = Color.Green;
167            Raha.Image = LoadImage("Raha");
168            return Raha;
169
170        }
171
172        PhysicsObject LuoPelaaja1()
173        {
174            pelaaja1 = new PlatformCharacter(50.0, 50.0);
175            pelaaja1.Shape = Shapes.Circle;
176            pelaaja1.Color = Color.Yellow;
177            pelaaja1.Image = LoadImage("Hymiö");
178            return pelaaja1;
179        }
180
181        void lisaaEsine()
182        {
183           
184        }
185       
186        void lisaaPelaajat()
187        {
188            pelaaja1 = new PlatformCharacter(40, 40);
189            pelaaja1.Image = LoadImage("hymiö");
190            pelaaja1.Mass = 4.0;
191            //pelaaja1.;
192            pelaaja1.X = -100;
193            pelaaja1.Y = Level.Bottom + 120;
194           
195
196            AddCollisionHandler(pelaaja1, PelaajaTormasi);
197            Add(pelaaja1);
198        }
199
200
201        void lisaaMaali()
202        {
203           
204        }
205
206        void lisaaNappaimet()
207        {
208            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
209            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
210
211            Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
212            Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
213            Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
214
215        }
216
217       
218 
219           
220       
221
222        void liikuta(PlatformCharacter hahmo, double nopeus)
223        {
224            hahmo.Walk(nopeus);
225        }
226
227        void hyppaa(PlatformCharacter hahmo, double voima)
228        {
229            hahmo.Jump(voima);
230        }
231
232        void PelaajaTormasi(PhysicsObject collidingObject, PhysicsObject otherObject)
233        {
234            if (otherObject.Tag.ToString() == "maali")
235            {
236                this.PlaySound("maali");
237                int edellisenKentanPisteet = pisteLaskuri.Value;
238                seuraavaKentta();
239                MessageDisplay.Add("Pääsit läpi kentän " + kenttaNro + ". Pisteitä: " + edellisenKentanPisteet);
240            }
241
242            if (otherObject.Tag.ToString() == "Raha")
243            {
244             
245             
246            }
247       
248        }
249    }
250}
Note: See TracBrowser for help on using the repository browser.