source: 2011/31/SanteriP/Acon/Acon/Peli.cs @ 2551

Revision 2551, 6.0 KB checked in by pesosant, 10 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
9public class Peli : PhysicsGame
10{
11    RandomMoverBrain satunnaisAivot = new RandomMoverBrain();
12    Image olionKuva = LoadImage("Alus");
13    Image AsteroidinKuva = LoadImage("Asteroid");
14    Image AlotusKuva = LoadImage("Acon Start");
15    PhysicsObject Acon;
16    PhysicsObject Asteroid;
17    LaserGun pyssy;
18    List<Label> valikonKohdat;
19
20    public override void Begin()
21    {
22        Alkuvalikko();
23
24    }   
25       
26    void LuoKentta()
27     
28      {
29
30        Acon = new PhysicsObject(30, 80);
31        Acon.Shape = Shape.Triangle;
32        Acon.Color = Color.White;
33        Acon.Image = olionKuva;
34        Acon.Tag = "Acon";
35        Add(Acon);
36
37        pyssy = new LaserGun(20, 5);
38        pyssy.LaserCollision = LaserSadeOsuu;
39        pyssy.Angle += Angle.FromDegrees(90);
40        pyssy.Ammo.Value = 500;
41        pyssy.Tag = "pyssy";
42        Acon.Add(pyssy);
43
44        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
45        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
46        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
47        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
48        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
49        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
50        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu",pyssy);
51
52        Level.CreateBorders(1.0, false);
53        Level.Background.CreateStars(100);
54        Level.BackgroundColor = Color.Black;
55        Camera.ZoomToLevel();
56
57        Timer ajastin = new Timer();
58        ajastin.Interval = 1.7;
59        ajastin.Timeout += delegate { LuoVihollinen(); };
60        ajastin.Start();
61       
62       
63        AddCollisionHandler(Acon, KasitteleAconinTormays);
64
65    }
66
67        void LiikutaPelaajaa(Vector vektori)
68        {
69
70            Acon.Push(vektori);
71        }
72
73        void LuoVihollinen()
74        {
75            Asteroid = new PhysicsObject(150, 150);
76            Asteroid.Shape = Shape.FromImage( AsteroidinKuva );
77            RandomMoverBrain satunnaisAivot = new RandomMoverBrain();
78            satunnaisAivot.Active = true;
79            satunnaisAivot.Speed = 1000;
80            Asteroid.X = RandomGen.NextDouble(Level.Left, Level.Right);
81            Asteroid.Y = RandomGen.NextDouble(Level.Bottom,Level.Top);
82            Asteroid.Brain = satunnaisAivot;
83            Asteroid.Image = AsteroidinKuva;
84            Asteroid.Shape = Shape.Circle;
85            Asteroid.Tag = "Asteroid";
86            Add(Asteroid);
87
88
89        }
90        void LiikutaPelaajaa()
91        {
92
93        }
94        void KasitteleAconinTormays(PhysicsObject Acon, PhysicsObject kohde)
95        {
96           
97            if(kohde.Tag.ToString() == "Asteroid")
98            {
99               
100                Explosion rajahdys = new Explosion(100);
101                rajahdys.Position = Acon.Position;
102                Add(rajahdys);
103                Acon.Destroy();
104            }
105        }
106        void LaserSadeOsuu(PhysicsObject pyssy, PhysicsObject kohde)
107        {
108
109            if (kohde.Tag.ToString() == "Asteroid")
110            {
111                Explosion rajahdys = new Explosion(60);
112                rajahdys.Position = kohde.Position;
113                Add(rajahdys);
114                Asteroid.Destroy();
115            }
116        }
117        void AmmuAseella(LaserGun pyssy)
118        {
119            PhysicsObject ammus = pyssy.Shoot();
120
121            if (ammus != null)
122            {
123                ammus.Size *= 3;
124            }
125        }
126
127        protected override void Update(Jypeli.Time time)
128        {
129            if (Acon != null)
130            Acon.Angle = Acon.Velocity.Angle - Angle.FromDegrees(90);
131
132            base.Update(time);
133        }
134        void Alkuvalikko()
135        {
136            ClearAll();
137            valikonKohdat = new List<Label>();
138
139            Label kohta1 = new Label("Aloita Peli");
140            kohta1.Position = new Vector(0, 40);
141            valikonKohdat.Add(kohta1);
142           
143            Label kohta2 = new Label("Lopeta Peli");
144            kohta2.Position = new Vector(0, -40);
145            valikonKohdat.Add(kohta2);
146
147            Label kohta3 = new Label("Ohjeet");
148            kohta3.Position = new Vector(0, 0);
149            valikonKohdat.Add(kohta3);
150
151            Level.Background.Image = AlotusKuva;
152            Level.Background.FitToLevel();
153            Camera.ZoomToLevel();
154
155
156            foreach (Label valikonKohta in valikonKohdat)
157            {
158                Add(valikonKohta);
159            }
160
161
162            Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
163            Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
164            Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Ohjeet, null);
165
166            Mouse.IsCursorVisible = true;
167            Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
168            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
169        }
170
171        void ValikossaLiikkuminen(AnalogState hiirenTila)
172        {
173            foreach (Label kohta in valikonKohdat)
174            {
175             
176                   if (Mouse.IsCursorOn(kohta))
177                {
178                    kohta.TextColor = Color.Red;
179                } 
180                   else
181                {
182                    kohta.TextColor = Color.Cyan;
183                }
184
185            }
186           
187
188        }
189        void AloitaPeli()
190        {
191            ClearAll();
192            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Alkuvalikko, "Palaa valikkoon");
193            LuoKentta();
194        }
195        void Ohjeet()
196        {
197           
198        }
199   
200}
201
Note: See TracBrowser for help on using the repository browser.