source: 2011/31/AleksiR/OmaPeli/OmaPeli/OmaPeli/Peli.cs @ 2501

Revision 2501, 4.6 KB checked in by almarimp, 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 : PhysicsGame
10{
11    PhysicsObject Alus1;
12    PhysicsObject Alus2;
13    PhysicsObject tahti;
14    PhysicsObject tahti1;
15    PhysicsObject tahti2;
16    LaserGun pyssy;
17    LaserGun pyssy2;
18
19
20
21    public override void Begin()
22    {
23        Nappaimet();
24
25        Alus1 = new PhysicsObject(10, 30);
26        Alus1.Shape = Shape.Triangle;
27        Alus1.Color = Color.DarkRed;
28        Alus1.CanRotate = true;
29        Alus1.X = -250;
30        Add(Alus1);
31
32        Alus2 = new PhysicsObject(10, 30);
33        Alus2.Shape = Shape.Triangle;
34        Alus2.Color = Color.ForestGreen;
35        Alus2.CanRotate = true;
36        Alus2.X = 250;
37        Add(Alus2);
38
39        pyssy = new LaserGun(20, 5);
40        Alus1.Add(pyssy);
41        pyssy2 = new LaserGun(20, 5);
42        Alus2.Add(pyssy2);
43
44        pyssy.Angle += Angle.FromDegrees(90);
45        pyssy2.Angle += Angle.FromDegrees(90);
46
47        pyssy.Shoot();
48        pyssy2.Shoot();
49
50        pyssy.LaserCollision = LaserOsuu;
51        pyssy2.LaserCollision = LaserOsuu;
52
53
54        FollowerBrain aly1 = new FollowerBrain();
55        aly1.Target = Alus1;
56        aly1.FollowAlways = false;
57        aly1.TargetFollowDistance = 750;
58        aly1.Speed = 50;
59
60        FollowerBrain aly2 = new FollowerBrain();
61        aly2.Target = Alus2;
62        aly2.FollowAlways = false;
63        aly2.TargetFollowDistance = 500;
64        aly2.Speed = 50;
65
66        tahti1 = new PhysicsObject(25, 25);
67        tahti1.Shape = Shape.Star;
68        tahti1.Color = Color.Yellow;
69        tahti1.Y = -300;
70        tahti1.X = -100;
71        tahti1.Brain = aly1;
72        Add(tahti1);
73
74        tahti2 = new PhysicsObject(25, 25);
75        tahti2.Shape = Shape.Star;
76        tahti2.Color = Color.Yellow;
77        tahti2.Y = -300;
78        tahti2.X = 100;
79        tahti2.Brain = aly2;
80        Add(tahti2);
81
82        Level.CreateBorders(1.0, false);
83        Level.BackgroundColor = Color.Black;
84
85        IsFullScreen = true;
86        Camera.ZoomToLevel();
87
88        int i = 0;
89
90        while (i < 2)
91        {
92            LuoUusiTahti();
93            i++;
94        }
95    }
96
97    void Nappaimet()
98    {
99        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
100
101        Keyboard.Listen(Key.Left, ButtonState.Down,
102           LiikutaPelaajaa1, null, new Vector(-100, 0));
103        Keyboard.Listen(Key.Right, ButtonState.Down,
104          LiikutaPelaajaa1, null, new Vector(100, 0));
105        Keyboard.Listen(Key.Up, ButtonState.Down,
106          LiikutaPelaajaa1, null, new Vector(0, 100));
107        Keyboard.Listen(Key.Down, ButtonState.Down,
108          LiikutaPelaajaa1, null, new Vector(0, -100));
109
110        Keyboard.Listen(Key.A, ButtonState.Down,
111           LiikutaPelaajaa2, null, new Vector(-100, 0));
112        Keyboard.Listen(Key.D, ButtonState.Down,
113          LiikutaPelaajaa2, null, new Vector(100, 0));
114        Keyboard.Listen(Key.W, ButtonState.Down,
115          LiikutaPelaajaa2, null, new Vector(0, 100));
116        Keyboard.Listen(Key.S, ButtonState.Down,
117          LiikutaPelaajaa2, null, new Vector(0, -100));
118
119        Keyboard.Listen(Key.Space, ButtonState.Pressed, Ampuu, null);
120        Keyboard.Listen(Key.Tab, ButtonState.Pressed, Ampuu2, null);
121
122    }
123
124    void Ampuu()
125    {
126        pyssy.Shoot();
127    }
128
129    void Ampuu2()
130    {
131        pyssy2.Shoot();
132    }
133
134    void LiikutaPelaajaa1(Vector vektori1)
135    {
136        Alus1.Push(vektori1);
137    }
138
139    void LiikutaPelaajaa2(Vector vektori2)
140    {
141        Alus2.Push(vektori2);
142    }
143
144    protected override void Update(Time time)
145    {
146        base.Update(time);
147        Alus1.Angle = Alus1.Velocity.Angle - Angle.FromDegrees(90);
148        base.Update(time);
149        Alus2.Angle = Alus2.Velocity.Angle - Angle.FromDegrees(90);
150    }
151
152
153    void LuoUusiTahti()
154    {
155        FollowerBrain aly = new FollowerBrain();
156        aly.Target = Alus1;
157        aly.FollowAlways = false;
158        aly.TargetFollowDistance = 200;
159        aly.Speed = 50;
160
161        tahti = new PhysicsObject(30, 30);
162        tahti.Shape = Shape.Star;
163        tahti.Color = Color.Yellow;
164        tahti.Y = RandomGen.NextDouble(-400, 400);
165        tahti.X = RandomGen.NextDouble(-400, 400);
166        tahti.Brain = aly;
167
168        Add(tahti);
169    }
170
171    void LaserOsuu(PhysicsObject ammus, PhysicsObject kohde)
172    {
173        ammus.Destroy();
174        Explosion rajahdys = new Explosion(10);
175        rajahdys.Position = ammus.Position;
176        Add(rajahdys);
177
178    }
179}
Note: See TracBrowser for help on using the repository browser.