source: 2011/24/JaniS/Virus Infection/Virus Infection/Virus Infection/Peli.cs @ 2055

Revision 2055, 7.4 KB checked in by jajusaar, 10 years ago (diff)

MELKEIN VALMIS!!!!! OMGOMGOGMOMG!!!

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Widgets;
7using Jypeli.Effects;
8
9public class Peli : PhysicsGame
10{
11    PhysicsObject pelaaja = new PhysicsObject(20, 20);
12    //PhysicsObject virus = new PhysicsObject(25, 25);
13    Image rajahdysKuva = LoadImage("valo");
14
15    List<Label> valikonKohdat;
16
17    public override void Begin()
18    {
19        Valikko();
20    }
21
22    void Valikko()
23    {
24        ClearAll();
25        valikonKohdat = new List<Label>();
26        Level.BackgroundColor = Color.Black;
27
28        Label kohta1 = new Label("Arcade Mode");
29        kohta1.Position = new Vector(0, 90);
30        valikonKohdat.Add(kohta1);
31
32        Label kohta2 = new Label("Survival Mode");
33        kohta2.Position = new Vector(0, 10);
34        valikonKohdat.Add(kohta2);
35
36        Label kohta3 = new Label("Instructions");
37        kohta3.Position = new Vector(0, -70);
38        valikonKohdat.Add(kohta3);
39
40        Label kohta4 = new Label("Exit");
41        kohta4.Position = new Vector(0, -150);
42        valikonKohdat.Add(kohta4);
43
44        foreach (Label valikonKohta in valikonKohdat)
45        {
46            Add(valikonKohta);
47        }
48
49        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
50        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, AloitaSurvivalMode, null);
51        Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Lopeta, null);
52        Mouse.ListenOn(kohta4, MouseButton.Left, ButtonState.Pressed, Lopeta, null);
53
54        Mouse.IsCursorVisible = true;
55        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
56        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, "Lopeta");
57
58    }
59
60    void ValikossaLiikkuminen(AnalogState hiirenTila)
61    {
62        foreach (Label kohta in valikonKohdat)
63        {
64            if (Mouse.IsCursorOn(kohta))
65            {
66                kohta.TextColor = Color.Yellow;
67            }
68            else
69            {
70                kohta.TextColor = Color.DarkBlue;
71            }
72        }
73    }
74
75
76    void AloitaSurvivalMode()
77    {
78        LuoKentta("SurvivalMode.txt");
79    }
80
81
82        void AloitaPeli()
83        {
84            ClearAll();
85
86            LuoKentta("Kentta.txt");
87            Ohjaus();
88        }
89
90        void Lopeta()
91        {
92            Exit();
93        }
94
95
96    void LiikutaPelaajaa(Vector vektori)
97    {
98        pelaaja.Push(vektori);
99    }
100
101
102    void LuoKentta(string kentta)
103    {
104        TileMap ruudut = TileMap.FromFile(kentta);
105        ruudut.SetTileMethod('#', LuoPalikka);
106        ruudut.SetTileMethod('o', LuoPelaaja);
107        ruudut.SetTileMethod('x', LuoVirukset);
108        ruudut.SetTileMethod('M', LuoMaali);
109        ruudut.Execute(50, 60);
110        Level.BackgroundColor = Color.Black;
111        LuoAikaLaskuri();
112        //Mouse.IsCursorVisible = false;
113    }
114
115    void LuoPalikka(Vector paikka, double leveys, double korkeus)
116    {
117        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
118        palikka.Position = paikka;
119        palikka.Shape = Shape.Rectangle;
120        palikka.Color = Color.DarkBlue;
121        palikka.Restitution = 1.0;
122        palikka.Tag = "palikka";
123        Add(palikka);
124    }
125    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
126    {
127        if (pelaaja.IsAddedToGame) pelaaja.Destroy();
128        pelaaja = new PhysicsObject(20, 20);
129        pelaaja.Position = paikka;
130        pelaaja.Shape = Shape.Circle;
131        pelaaja.Color = Color.Yellow;
132        Add(pelaaja);
133        AddCollisionHandler(pelaaja, KasitteleTormays);
134
135    }
136    void LuoVirukset(Vector paikka, double leveys, double korkeus)
137    {
138        PhysicsObject virus = new PhysicsObject(25, 25);
139        virus.Position = paikka;
140        virus.Shape = Shape.Circle;
141        virus.Color = Color.Red;
142        virus.Tag = "virus";
143        Add(virus);
144        Vector impulssi = new Vector(0, 250.0);
145        virus.Hit(impulssi);
146        virus.Restitution = 1.0;
147
148        Timer ajastin = new Timer();
149        ajastin.Tag = virus;
150        ajastin.Interval = 10;
151        ajastin.Trigger += LisaaVauhtia;
152        ajastin.Start();
153    }
154
155    void LuoMaali(Vector paikka, double leveys, double korkeus)
156    {
157        PhysicsObject maali = new PhysicsObject(30, 30);
158        maali.Position = paikka;
159        maali.IgnoresCollisionResponse = true;
160        maali.Shape = Shape.Circle;
161        maali.Color = Color.GreenYellow;
162        AddCollisionHandler(maali, Maali);
163       
164        Add(maali, -1);
165
166    }
167
168    void LisaaVauhtia(Timer sender)
169    {
170        PhysicsObject virus = sender.Tag as PhysicsObject;
171
172        Vector impulssi = new Vector(0, 150.0);
173        virus.Hit(impulssi);
174    }
175
176    void Ohjaus()
177    {
178        Keyboard.Listen(Key.Space, ButtonState.Pressed, Valikko, "Palaa valikkoon");
179
180        Keyboard.Listen(Key.Enter, ButtonState.Down, AloitaAlusta, "Restart");
181       
182        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
183
184        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
185        Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
186        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
187        Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
188        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
189        Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
190        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
191        Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
192    }
193    void PysaytaPelaaja(Vector Zero)
194    {
195        pelaaja.Velocity = Zero;
196    }
197
198        void Maali(PhysicsObject pelaaja, PhysicsObject maali)
199    {
200        MessageDisplay.Add("Stage Cleared, You Won!");
201        MessageDisplay.TextColor = Color.White;
202    }
203   
204    void KasitteleTormays(PhysicsObject pelaaja, PhysicsObject kohde)
205    {
206        if (kohde.Tag.ToString() == "palikka" || kohde.Tag.ToString() == "virus")
207        {
208            int pMaxMaara = 50;
209            ExplosionSystem valo =
210                new ExplosionSystem(rajahdysKuva, pMaxMaara);
211            Add(valo);
212            MessageDisplay.Add("Game Over");
213            MessageDisplay.TextColor = Color.Red;
214
215
216            int pMaara = 1;
217
218            valo.AddEffect(pelaaja.Position.X, pelaaja.Position.Y, pMaara);
219
220            pelaaja.Destroy();
221        }
222    }
223
224    void LuoAikaLaskuri()
225    {
226        Timer aikaLaskuri = new Timer();
227        aikaLaskuri.Interval = 1;
228        aikaLaskuri.Start();
229        //aikaLaskuri.Trigger += AikaLoppui;
230
231        Label aikaNaytto = new Label();
232        aikaNaytto.TextColor = Color.White;
233        aikaNaytto.DecimalPlaces = 1;
234        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
235        aikaNaytto.Y = Level.Top - 100;
236        Add(aikaNaytto);
237    }
238
239    void AikaLoppui(Timer ajastin)
240    {
241        MessageDisplay.Add("Game Over");
242        MessageDisplay.Color = Color.Red;
243        ajastin.Stop();
244    }
245
246    void nayttoViestit()
247    {
248
249    }
250
251    void AloitaAlusta()
252    {
253        ClearAll();
254        LuoKentta("kentta.txt");
255        Ohjaus();
256
257    }
258}
259
Note: See TracBrowser for help on using the repository browser.