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

Revision 1622, 2.9 KB checked in by juiitamm, 9 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7{
8    Image matoKuva = LoadImage("Tappajamato1");
9    Image taustaKuva = LoadImage("Kuutamo");
10    PhysicsObject tappajaMato;
11    PhysicsObject seinä;
12    PhysicsObject seinä2;
13    protected override void Begin()
14    {
15        PhysicsObject maasto = Level.CreateGround(450, 400, 10, Color.Black);
16        maasto.IgnoresCollisionResponse = true;
17        Level.Background.Image = taustaKuva;
18        Level.Background.FitToLevel();
19        LuoTappajaMato();
20        ohjaus();
21        Camera.Follow( tappajaMato );
22        Camera.Zoom(1.9);
23        Level.CreateBorders();
24        luoseinä();
25        Gravity = new Vector( 0.0, -800.0 );
26        luoseinä2();
27
28    }
29
30
31    void LuoTappajaMato()
32    {
33        tappajaMato = new PhysicsObject(90,40);
34        tappajaMato.Shape = Shapes.Rectangle;
35        tappajaMato.Mass = 10.0;
36        tappajaMato.Image = matoKuva;
37        tappajaMato.Y = -200;
38        tappajaMato.IgnoresGravity = true;
39        tappajaMato.IgnoresCollisionResponse =true;
40        Add(tappajaMato);
41        tappajaMato.LinearDamping = 0.9;
42        tappajaMato.AngularDamping = 0.95;
43        AddCollisionHandler(tappajaMato, matoTormasi);
44        Timer ajastin = new Timer();
45        ajastin.Interval = 1.5;
46        ajastin.Trigger += tarikistamadonpaikka;
47        ajastin.Start();
48    }
49
50   
51
52    void matoTormasi(PhysicsObject mato, PhysicsObject kohde)
53    {
54        if (kohde == seinä)
55        {
56            tappajaMato.IgnoresGravity = false;
57            Vector impulssi = Vector.FromLengthAndAngle(9989.0, tappajaMato.Angle);
58            tappajaMato.Hit(impulssi);
59            MessageDisplay.Add("Mato osui seinään");
60        }
61    }
62
63    void ohjaus()
64    {
65        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
66
67        Keyboard.Listen(Key.Left, ButtonState.Down, Kaannamatoa, null, tappajaMato, 0.9);
68        Keyboard.Listen(Key.Right, ButtonState.Down, Kaannamatoa, null, tappajaMato, -0.9);
69        Keyboard.Listen(Key.Up, ButtonState.Down, Liikutamatoa, null, tappajaMato,  100.0);
70    }
71
72   
73    void Kaannamatoa(PhysicsObject tappajaMato, double kaantoNopeus)
74    {
75       tappajaMato.AngularVelocity += kaantoNopeus; 
76    }
77
78    void Liikutamatoa(PhysicsObject alus, double nopeus)
79    {
80        Vector impulssi = Vector.FromLengthAndAngle(nopeus, tappajaMato.Angle);
81        tappajaMato.Hit(impulssi);
82    }
83    void luoseinä()
84    {
85        seinä = new PhysicsObject(Level.Width, 02);
86        seinä.Shape = Shapes.Rectangle;
87        Add(seinä);
88    }
89    void luoseinä2()
90    {
91        seinä2 = new PhysicsObject(Level.Width, 02);
92        seinä2.Shape = Shapes.Rectangle;
93        Add(seinä2);
94        seinä2.Y = -390;
95    }
96    void tarikistamadonpaikka(Timer sender)
97    {
98     
99    }
100}
Note: See TracBrowser for help on using the repository browser.