source: 2010/27/patammi/Autopeli1/Peli.cs @ 1174

Revision 1174, 4.0 KB checked in by paaaanro, 11 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using Jypeli.Effects;
6
7public class Peli : TopDownPhysicsGame
8{
9    Automobile auto;
10    Automobile auto2;
11
12    LaserGun laserPyssy1;
13    LaserGun laserPyssy2;
14
15    PhysicsObject OilBarrel;
16
17    ExplosionSystem es;
18
19    protected override void Begin()
20    {
21        KineticFriction = 1.0; // Asetetaan kitka
22
23        auto = new Automobile(40, 20);
24        auto.Mass = 1.0;
25        auto.Maneuverability = Angle.Degrees(120);
26        auto.Color = new Color(0, 0, 0);
27        auto.AngularDamping = 0.9;
28        Add(auto);
29
30        laserPyssy1 = new LaserGun(20, 5);
31        laserPyssy1.TimeBetweenUse = TimeSpan.FromSeconds(0.5);
32        auto.Add(laserPyssy1);
33        laserPyssy2 = new LaserGun(20, 5);
34
35        auto2 = new Automobile(40, 20);
36        auto2.Mass = 10.0;
37        auto2.Maneuverability = Angle.Degrees(120);
38        auto2.Color = new Color(192, 192, 255);
39        auto2.AngularDamping = 0.9;
40        Add(auto2);
41
42        auto2.Add(laserPyssy2);
43
44
45        for (int a = 0; a < 10; a++)
46        {
47            LisaaOilBarrel();
48        }
49
50
51        Camera.ZoomToLevel(5);
52        Level.CreateBorders(1.0, false);
53        Level.BackgroundColor = Color.Gray;
54
55        AsetaNappaimet();
56        AsetaXBoxOhjaimet();
57        LataaRajahdys();
58
59    }
60
61    void LataaRajahdys()
62    {
63        Image expl = LoadImage("Red");
64        es = new ExplosionSystem(expl, 1000);
65        Add(es);
66
67    }
68
69    void AsetaXBoxOhjaimet()
70    {
71        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
72
73
74    }
75    void LiikutaPelaajaa(AnalogState state)
76    {
77        auto.Turn(Angle.Degrees(state.StateVector.X * -4), Time.SinceLastUpdate.TotalSeconds);
78    }
79    void AsetaNappaimet()
80    {
81        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
82        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
83        Keyboard.Listen(Key.Up, ButtonState.Down, kiihdyta, "Kiihdytä", auto);
84        Keyboard.Listen(Key.Down, ButtonState.Down, jarruta, "Jarruta", auto);
85        Keyboard.Listen(Key.Left, ButtonState.Down, kaanny, "Käänny vasemmalle", auto, Angle.Degrees(2));
86        Keyboard.Listen(Key.Right, ButtonState.Down, kaanny, "Käänny oikealle", auto, Angle.Degrees(-2));
87
88        Keyboard.Listen(Key.W, ButtonState.Down, kiihdyta, "Kiihdytä", auto2);
89        Keyboard.Listen(Key.S, ButtonState.Down, jarruta, "Jarruta", auto2);
90        Keyboard.Listen(Key.A, ButtonState.Down, kaanny, "Käänny vasemmalle", auto2, Angle.Degrees(2));
91        Keyboard.Listen(Key.D, ButtonState.Down, kaanny, "Käänny oikealle", auto2, Angle.Degrees(-2));
92
93
94        Keyboard.Listen(Key.M, ButtonState.Down, laserPyssy1.Use, "ammu");
95        Keyboard.Listen(Key.V, ButtonState.Down, laserPyssy2.Use, "ammu");
96
97    }
98
99
100    void laaserase()
101    {
102        //laserPyssy.LaserCollision = LaserSadeOsuu;
103    }
104
105
106
107
108
109    void kiihdyta(Automobile auto)
110    {
111        auto.Accelerate(Time.SinceLastUpdate.TotalSeconds);
112    }
113
114    void jarruta(Automobile auto)
115    {
116        auto.Brake(Time.SinceLastUpdate.TotalSeconds);
117    }
118
119    void kaanny(Automobile auto, Angle kaannos)
120    {
121        auto.Turn(kaannos, Time.SinceLastUpdate.TotalSeconds);
122    }
123
124
125
126    void Rajahdys(PhysicsObject tormaaja, PhysicsObject kohde)
127    {
128        es.AddEffect(tormaaja.X, tormaaja.Y, 20);
129        tormaaja.Destroy();
130    }
131
132    void LisaaOilBarrel()
133    {
134        OilBarrel = new PhysicsObject(15, 15, Shapes.Circle);
135        OilBarrel.Color = Color.Red;
136        OilBarrel.Mass = 100;
137        OilBarrel.LinearDamping = 0.9;
138        Add(OilBarrel);
139        AddCollisionHandler(OilBarrel, Rajahdys);
140        OilBarrel.X = RandomGen.NextDouble(Level.Left, Level.Right);
141        OilBarrel.Y = RandomGen.NextDouble(Level.Bottom, Level.Top);
142    }
143
144}
Note: See TracBrowser for help on using the repository browser.