source: 2011/31/JereK/Serades/Serades/Serades/Peli.cs @ 2498

Revision 2498, 3.7 KB checked in by jekuukka, 8 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 : TopDownPhysicsGame
10{
11    Vector[] vihollistenAloitukset = { new Vector(450,350),
12                                     new Vector(-450,350),
13                                     new Vector(450,-350),
14                                     new Vector(-450,-350)};
15    Image olionkuva = LoadImage("alus");
16    Image vihokuva = LoadImage("vihollinen");
17
18    PhysicsObject alus;
19    LaserGun pyssy;
20    PhysicsObject beam = new PhysicsObject(new RaySegment(Vector.Zero, Vector.UnitX, 10));
21
22
23    public override void Begin()
24
25    {
26        LuoAlus();
27        Level.CreateBorders();
28        Camera.ZoomToLevel();
29        Level.Background.CreateStars(5000);
30        AsetaOhjaimet();
31        MessageDisplay.Add("haa");
32        MessageDisplay.TextColor = Color.White;
33        MessageDisplay.MessageTime = new TimeSpan(0, 0, 10);
34        //tekstikentta.X = Screen.Left + 100;
35        //tekstikentta.Y = Screen.Top - 100;
36        AloitaAalto();
37        beam.Color = Color.Green;
38    }
39
40    void LuoAlus()
41    {
42        alus = new PhysicsObject(30, 30);
43        Add(alus);
44        alus.LinearDamping = 0.96;
45        alus.Image = olionkuva;
46        pyssy = new LaserGun(20, 5);
47        pyssy.LaserCollision = LaserSadeOsuu;
48        pyssy.ProjectileCollision = LaserSadeOsuu;
49        alus.Add(pyssy);
50        pyssy.Angle = pyssy.Angle + Angle.FromDegrees(90);
51    }
52
53
54
55    void AloitaAalto()
56    {
57        Timer ajastin = new Timer();
58        ajastin.Interval = 5.0;
59        ajastin.Timeout += LuoVihollinen;
60        ajastin.Start(3);
61    }
62
63    void AsetaOhjaimet()
64    {
65        Keyboard.Listen(Key.Left, ButtonState.Down,
66          Kaanna, null, 10.0);
67        Keyboard.Listen(Key.Right, ButtonState.Down,
68          Kaanna, null, -10.0);
69        Keyboard.Listen(Key.Up, ButtonState.Down,
70          Kaasu, null);
71        Keyboard.Listen(Key.Down, ButtonState.Down,
72          Kaasu, null);
73        Keyboard.Listen(Key.LeftControl, ButtonState.Pressed,Ammu, null);
74    }
75
76    void Ammu() 
77    {
78        pyssy.Shoot();
79        beam.Color = Color.Blue;
80    }
81
82
83    void Kaasu() 
84    { 
85        alus.Push(Vector.FromLengthAndAngle(400,alus.Angle + Angle.FromDegrees(90)));
86    }
87
88    void Kaanna(double nopeus)
89    {
90        alus.AngularAcceleration = nopeus;
91    }
92
93    void LuoVihollinen()
94    {
95        for (int i = 0; i < 4; i++)
96        {
97        PhysicsObject vihollinen = new PhysicsObject(40, 40);
98        vihollinen.X = 450;
99        vihollinen.Y = 350;
100        vihollinen.Position = vihollistenAloitukset[i];
101        vihollinen.Image = vihokuva;
102        AddCollisionHandler(vihollinen, LaserSadeOsuu);
103
104
105        FollowerBrain seuraajanAivot = new FollowerBrain();
106        seuraajanAivot.Target = alus;
107        seuraajanAivot.Speed = 20;
108        seuraajanAivot.TargetFollowDistance = 600;
109        seuraajanAivot.FollowAlways = true;
110        seuraajanAivot.TargetCloseDistance = 1;
111        seuraajanAivot.StopWhenTargetClose = false;
112        seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella;
113        vihollinen.Brain = seuraajanAivot;
114        seuraajanAivot.Active = true;
115        Add(vihollinen);
116
117
118
119        }
120    }
121
122    void mitaTapahtuuKunOllaanLahella(object lahettajaAivot, EventArgs e)
123    {
124        //TODO
125    }
126
127    void LaserSadeOsuu(PhysicsObject ammus, PhysicsObject kohde)
128    {
129        ammus.Destroy();
130        Explosion rajahdys = new Explosion(10);
131        rajahdys.Position = ammus.Position;
132        Add(rajahdys);
133    }
134
135}
136
137
138       
139   
140
Note: See TracBrowser for help on using the repository browser.