source: 2010/31/kirsipienmaki@gmail.com/FysiikkaPeli3/Peli.cs @ 1664

Revision 1664, 3.5 KB checked in by paaaanro, 10 years ago (diff)

Ei valmis...

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using Physics2DDotNet.Ignorers;
6
7public class Peli : PhysicsGame
8{
9    Image taloKuva = LoadImage("Talo");
10    Image matoKuva = LoadImage("Tappajamato1");
11    Image taustaKuva = LoadImage("Kuutamo");
12    PhysicsObject tappajaMato;
13    Image vihu1kuva = LoadImage("Vihu1");
14
15    Vector downforce = new Vector(0, 9999);
16    ObjectIgnorer ignorer = new ObjectIgnorer();
17
18    protected override void Begin()
19    {
20        PhysicsObject maasto = Level.CreateGround(450, 440, 10, Color.Black);
21        maasto.IgnoresCollisionResponse = false;
22        Level.Background.Image = taustaKuva;
23        Level.Background.FitToLevel();
24        LuoTappajaMato();
25        ohjaus();
26        Camera.Follow(tappajaMato);
27        Camera.ZoomToLevel();
28        Level.CreateBorders();
29        Gravity = new Vector(0.0, -800.0);
30        luotalot();
31        maasto.CollisionIgnorer = ignorer;
32        tappajaMato.CollisionIgnorer = ignorer;
33        luovihu1();
34    }
35    void luotalot()
36    {
37        PhysicsObject Talo = new PhysicsObject(90, 220);
38        Talo.Shape = Shapes.Rectangle;
39        Talo.Mass = 10.0;
40        Talo.Image = taloKuva;
41        Talo.Y = 150;
42        Talo.X = RandomGen.NextDouble(Level.Left, Level.Right);
43        Add(Talo);
44    }
45    void LuoTappajaMato()
46    {
47        tappajaMato = new PhysicsObject(90, 40);
48        tappajaMato.Shape = Shapes.Rectangle;
49        tappajaMato.Mass = 10.0;
50        tappajaMato.Image = matoKuva;
51        tappajaMato.Y = -200;
52        tappajaMato.IgnoresGravity = true;
53        Add(tappajaMato);
54        tappajaMato.LinearDamping = 0.9;
55        tappajaMato.AngularDamping = 0.95;
56        AddCollisionHandler(tappajaMato, matoTormasi);
57        Timer ajastin = new Timer();
58        ajastin.Interval = 0.1;
59        ajastin.Trigger += tarkistamadonpaikka;
60        ajastin.Start();
61    }
62
63
64
65    void matoTormasi(PhysicsObject mato, PhysicsObject kohde)
66    {
67    }
68
69    void ohjaus()
70    {
71        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
72
73        Keyboard.Listen(Key.Left, ButtonState.Down, Kaannamatoa, null, tappajaMato, 0.3);
74        Keyboard.Listen(Key.Right, ButtonState.Down, Kaannamatoa, null, tappajaMato, -0.3);
75        Keyboard.Listen(Key.Up, ButtonState.Down, Liikutamatoa, null, tappajaMato, 100.0);
76    }
77
78
79    void Kaannamatoa(PhysicsObject tappajaMato, double kaantoNopeus)
80    {
81        tappajaMato.AngularVelocity += kaantoNopeus;
82    }
83
84    void Liikutamatoa(PhysicsObject alus, double nopeus)
85    {
86        Vector impulssi = Vector.FromLengthAndAngle(nopeus, tappajaMato.Angle);
87        tappajaMato.Hit(impulssi);
88    }
89    void tarkistamadonpaikka(Timer sender)
90    {
91
92        if (tappajaMato.Y > Level.Center.Y && tappajaMato.Y < 50 && tappajaMato.Velocity.Y > 0)
93        {
94            tappajaMato.IgnoresGravity = false;
95            tappajaMato.Hit(downforce);
96        }
97        if (tappajaMato.Y < Level.Center.Y)
98        {
99            tappajaMato.IgnoresGravity = true;
100        }
101    }
102    void luovihu1()
103    {
104        PhysicsObject Vihu1 = new PhysicsObject(20, 13);
105        Vihu1.Shape = Shapes.Rectangle;
106        Vihu1.Mass = 10.0;
107        Vihu1.Image = vihu1kuva;
108        Vihu1.Y = 147;
109        Vihu1.X = RandomGen.NextDouble(Level.Left, Level.Right);
110        Add(Vihu1);
111        for (int i = 0; i < 30; i++)
112        {
113            Add(Vihu1);
114        }
115    }
116}
Note: See TracBrowser for help on using the repository browser.