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

Revision 762, 7.5 KB checked in by jealmaki, 11 years ago (diff)

tein pelin

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
29            kenttaNro = 0;
30            Level.Width = 2000;
31            Level.Height = 2000;
32            Camera.Zoom(0.5);
33            Camera.Follow(pelaaja1);
34
35            seuraavaKentta(true);
36            MessageDisplay.Add("Etsi punainen hymiö!");
37        }
38
39        void LuoKolmio(double leveys, double korkeus, int x, int y)
40        {
41            PhysicsObject kolmio = new PhysicsObject(leveys, korkeus);
42            kolmio.Shape = Shapes.Triangle;
43            kolmio.X = x;
44            kolmio.Y = y;
45            Add(kolmio);
46        }
47
48        void seuraavaKentta(bool seuraava)
49        {
50            ClearAll();
51            MessageDisplay.TextColor = Color.Red;
52            // Luodaan pistelaskuri
53            pisteLaskuri = new IntMeter(0);
54
55            // luodaan pistelaskunäyttö
56            pisteNaytto = new ValueDisplay();
57            pisteNaytto.Text = "Pisteitä: ";
58            pisteNaytto.X = Screen.RightSafe - 250;
59            pisteNaytto.Y = Screen.TopSafe - 50;
60            pisteNaytto.BindTo(pisteLaskuri);
61            Add(pisteNaytto);    // lisätään peliin
62            pisteNaytto.ValueColor = Color.Red;
63            pisteNaytto.TextColor = Color.Red;
64            pisteLaskuri.Reset();
65            if (seuraava)
66            {
67                kenttaNro += 1; // lisätään kenttänumeroa yhdellä
68            }
69            MessageDisplay.Add("Koodaus ja Textuurit:Jesse Mäkinen ");
70            MessageDisplay.Add("Kenttä " + kenttaNro);
71
72            // Asetetaan painovoima
73            Gravity = new Vector(0, -1000);
74
75            luoKentta();
76            lisaaNappaimet();
77            Camera.Follow(pelaaja1);
78        }
79
80        #region Kentän ja kenttäolioiden lisäys
81        void luoKentta()
82        {
83            Level.Background.CreateGradient(Color.Green, Color.Black);
84            //Level.CreateBorders();
85            Level.Background.Image = LoadImage("BackGround");
86
87            var merkit = new Dictionary<char, ObjectCreator>();
88            merkit['x'] = LuoPalikka;
89            merkit['d'] = LuoOlio;
90            merkit['r'] = LuoRaha;
91            merkit['p'] = LuoPelaaja1;
92            merkit['i'] = LuoPalikka2;
93            merkit['e'] = LuoVihollinen;
94            merkit['m'] = LuoPalikka3;
95            merkit['s'] = LuoSiviili;
96            char[,] ruudut = Tiles.ReadFromFile("TextFile1.txt");
97            Tiles.Insert(this, ruudut, merkit, ruudunLeveys, ruudunKorkeus);
98
99
100
101            lisaaMaali();
102            lisaaEsine();
103        }
104
105        PhysicsObject LuoOlio()
106        {
107            PhysicsObject olio = PhysicsObject.CreateStaticObject(30.0, 30.0);
108            olio.Shape = Shapes.Rectangle;
109            olio.Color = Color.Black;
110            return olio;
111
112        }
113
114        PhysicsObject LuoSiviili()
115        {
116            PhysicsObject Siviili = PhysicsObject.CreateStaticObject(100.0, 100.0);
117            Siviili.Shape = Shapes.Rectangle;
118            Siviili.Color = Color.Gray;
119            Siviili.Tag = "Siviili";
120            Siviili.Image = LoadImage("Siviili");
121            return Siviili;
122        }
123
124        PhysicsObject LuoVihollinen()
125        {
126            PhysicsObject Vihollinen = PhysicsObject.CreateStaticObject(100.0, 100.0);
127            Vihollinen.Shape = Shapes.Rectangle;
128            Vihollinen.Color = Color.Gray;
129            Vihollinen.Tag = "Vihollinen";
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            Raha.Tag = "Raha";
169            return Raha;
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            AddCollisionHandler(pelaaja1, PelaajaTormasi);
179            return pelaaja1;
180        }
181
182        void lisaaEsine()
183        {
184
185        }
186
187        void lisaaMaali()
188        {
189
190        }
191
192        #endregion
193
194        void lisaaNappaimet()
195        {
196            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
197            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
198
199            Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
200            Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
201            Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
202        }
203
204        void liikuta(PlatformCharacter hahmo, double nopeus)
205        {
206            hahmo.Walk(nopeus);
207        }
208
209        void hyppaa(PlatformCharacter hahmo, double voima)
210        {
211            hahmo.Jump(voima);
212        }
213
214        void PelaajaTormasi(PhysicsObject collidingObject, PhysicsObject otherObject)
215        {
216            if (otherObject.Tag.ToString() == "maali")
217            {
218                this.PlaySound("maali");
219                int edellisenKentanPisteet = pisteLaskuri.Value;
220                seuraavaKentta(true);
221                MessageDisplay.Add("Pääsit läpi kentän " + kenttaNro + ". Pisteitä: " + edellisenKentanPisteet);
222            }
223
224            if (otherObject.Tag.ToString() == "Raha")
225            {
226                pisteLaskuri.Value += 1;
227                otherObject.Destroy();
228                MessageDisplay.Add("Sait pisteen :)");
229
230            }
231            if (otherObject.Tag.ToString() == "Siviili")
232            {
233                otherObject.Destroy();
234                MessageDisplay.Add("Hurraa!Voitit pelin <3 :)");
235                kenttaNro = 0;
236                seuraavaKentta(true);
237
238            }
239            if (otherObject.Tag.ToString() == "Vihollinen")
240            {
241                MessageDisplay.Add("Kuolit");
242                seuraavaKentta(false);
243               
244            }
245
246
247        }
248    }
249}
Note: See TracBrowser for help on using the repository browser.