source: 2013/24/EelisK/Run/Run/Run/Run.cs @ 4114

Revision 4114, 8.3 KB checked in by eetakoiv, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9namespace RunNS
10{
11
12    public class Run : PhysicsGame
13    {
14        int tasoNro = 1;
15
16        const double nopeus = 200;
17        const double hyppyNopeus = 550;
18        const int RUUDUN_KOKO = 40;
19
20        Pelaaja pelaaja1;
21
22        Image pelaajanKuva = LoadImage("norsu");
23        Image tahtiKuva = LoadImage("tahti");
24        Image AnsanKuva = LoadImage("Este2");
25
26
27
28
29        private Animation tyypinkavely;
30
31        public override void Begin()
32        {
33            MultiSelectWindow alkuValikko = new MultiSelectWindow("HardRun", "Start", "End Game");
34            alkuValikko.AddItemHandler(0, AloitaPeli);
35            alkuValikko.AddItemHandler(1, Exit);
36            alkuValikko.Color = Color.Black;
37            Add(alkuValikko);
38
39           
40
41
42        }
43
44        void AloitaPeli()
45        {
46            tyypinkavely = LoadAnimation("tyyppi");
47            // LuoKentta();
48            SeuraavaKentta();
49        }
50
51        void SeuraavaKentta()
52        {
53            ClearAll();
54
55            if (tasoNro == 1) LuoKentta("taso1");
56            else if (tasoNro == 2) LuoKentta("taso2");
57            else if (tasoNro == 3) LuoKentta("taso3");
58            else if (tasoNro == 4) LuoKentta("taso4");
59            else if (tasoNro == 5) LuoKentta("taso5");
60            Gravity = new Vector(0, -900);
61            Camera.Follow(pelaaja1);
62            Camera.ZoomFactor = 1.2;
63            Camera.StayInLevel = true;
64
65            LisaaNappaimet();
66        }
67
68        protected override void Update(Time time)
69        {
70            //if (pelaaja1 != null && !pelaaja1.IsDestroyed) pelaaja1.Walk(nopeus);
71            base.Update(time);
72        }
73
74
75        void LuoKentta(string kenttaTiedostonNimi)
76        {
77            TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi);
78            MediaPlayer.Play("touluse");
79            kentta.SetTileMethod('#', LisaaTaso);
80            kentta.SetTileMethod('*', LisaaTahti);
81            kentta.SetTileMethod('N', LisaaPelaaja);
82            kentta.SetTileMethod('E', LisaaPalikka);
83            kentta.SetTileMethod('O', LisaaAnsa);
84            kentta.SetTileMethod('M', LisaaMaali);
85            kentta.SetTileMethod('P', LisaaPelottavaNaama);
86            kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
87            Level.CreateBorders();
88            Level.Background.Image = Image.FromGradient(2048, 2048, Color.Red, Color.Blue);
89            Level.Background.FitToLevel();
90
91            Add(pelaaja1);
92
93        }
94        void TormasiMaaliin(PhysicsObject pelaaja1, PhysicsObject maali)
95        {
96            tasoNro++;
97            SeuraavaKentta();
98        }
99
100        void LisaaPalikka(Vector paikka, double leveys, double korkeus)
101        {
102            PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
103            taso.Position = paikka;
104            taso.Image = LoadImage("square");
105            //taso.Shape = Shape.FromImage(taso.Image);
106            Add(taso);
107        }
108
109        void LisaaPelottavaNaama(Vector paikka, double leveys, double korkeus)
110        {
111            PhysicsObject naamaPalikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
112            naamaPalikka.Position = paikka;
113            naamaPalikka.Image = LoadImage("square");
114            //taso.Shape = Shape.FromImage(taso.Image);
115            Add(naamaPalikka);
116            AddCollisionHandler(pelaaja1, naamaPalikka, TormattiinPelottavaanNaamaan);
117        }
118
119        void TormattiinPelottavaanNaamaan(PhysicsObject tormaaja, PhysicsObject naamaPalikka)
120        {
121            tormaaja.Destroy();
122            naamaPalikka.Destroy();
123            ClearAll();
124            MessageDisplay.Add(Camera.Position.ToString());
125            Image sairaanPelottavaKuva = LoadImage("eyes");
126            GameObject g = new GameObject(sairaanPelottavaKuva);
127//            GameObject g = new GameObject(sairaanPelottavaKuva);
128            //g.Image = sairaanPelottavaKuva;
129//            g.Position = Vector.Zero;
130            Add(g);
131//            Camera.Position = Vector.Zero;
132//            MessageDisplay.Add(Camera.Position.ToString());
133            //Camera.ZoomToAllObjects();
134        }
135
136        void LisaaTaso(Vector paikka, double leveys, double korkeus)
137        {
138            PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
139            taso.Position = paikka;
140            taso.Image = LoadImage("square");
141            Add(taso);
142        }
143
144        void LisaaTahti(Vector paikka, double leveys, double korkeus)
145        {
146            PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
147            tahti.IgnoresCollisionResponse = true;
148            tahti.Position = paikka;
149            tahti.Image = tahtiKuva;
150            tahti.Tag = "tahti";
151            Add(tahti);
152        }
153
154        void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
155        {
156            pelaaja1 = new Pelaaja(leveys, korkeus);
157            pelaaja1.Shape = Shape.Circle;
158            pelaaja1.Position = paikka;
159            pelaaja1.aloituspaikka = paikka;
160            pelaaja1.Mass = 4.0;
161            pelaaja1.Image = pelaajanKuva;
162            pelaaja1.Animation = tyypinkavely;
163            pelaaja1.Animation.Start();
164            AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja1, "ansa", TormaaEsteeseen);
165            AddCollisionHandler(pelaaja1, "maali", TormasiMaaliin);
166            Add(pelaaja1);
167        }
168
169        void LisaaNappaimet()
170        {
171            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
172            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "EndGame");
173            Keyboard.Listen(Key.R, ButtonState.Pressed, TormaaEsteeseen, "Aloita peli alusta", pelaaja1, new PhysicsObject(1, 1));
174
175            Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
176            Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
177            Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
178
179            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
180
181            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
182            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
183            ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
184
185            PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
186        }
187
188        void Liikuta(PlatformCharacter hahmo, double nopeus)
189        {
190            hahmo.Walk(nopeus);
191        }
192
193        void Hyppaa(PlatformCharacter hahmo, double nopeus)
194        {
195            hahmo.Jump(nopeus);
196        }
197
198        void TormaaEsteeseen(Pelaaja hahmo, PhysicsObject este)
199        {
200            MessageDisplay.Add("RUN");
201            Explosion rajahdys = new Explosion(40);
202            rajahdys.UseShockWave = false;
203            rajahdys.Position = este.Position;
204            Add(rajahdys, 1);
205            Timer.SingleShot(0.2,
206                delegate { hahmo.Position = hahmo.aloituspaikka; }
207            );
208        }
209
210        void LisaaAnsa(Vector paikka, double leveys, double korkeus)
211        {
212            PhysicsObject ansa = PhysicsObject.CreateStaticObject(leveys, korkeus);
213            ansa.Position = paikka;
214            ansa.Image = AnsanKuva;
215            ansa.Tag = "ansa";
216            ansa.Shape = Shape.FromImage(ansa.Image);
217            Add(ansa);
218        }
219
220        void kuolema(PlatformCharacter hahmo, PhysicsObject Ansa)
221        {
222            ClearAll();
223            Gravity = new Vector(0, -1000);
224
225            SeuraavaKentta();
226        }
227
228        void LisaaMaali(Vector paikka, double leveys, double korkeus)
229        {
230            PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
231            maali.Position = paikka;
232            maali.Tag = "maali";
233            maali.Image = LoadImage("maali1");
234            Add(maali);
235        }
236
237        void AsetaOhjaimet()
238        {
239        }
240    }
241}
Note: See TracBrowser for help on using the repository browser.