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

Revision 1616, 1.9 KB checked in by hniemi, 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
12    protected override void Begin()
13    {
14        Level.CreateGround(450, 400, 10, Color.Black);       
15        Level.Background.Image = taustaKuva;
16        Level.Background.FitToLevel();
17        LuoTappajaMato();
18        ohjaus();
19        Camera.Follow( tappajaMato );
20        //Camera.Zoom(2.6);
21        Gravity = new Vector(0.0, -100.0);
22    }
23
24    void LuoTappajaMato()
25    {
26        tappajaMato = new PhysicsObject(90,40);
27        tappajaMato.Shape = Shapes.Rectangle;
28        tappajaMato.Mass = 10.0;
29        tappajaMato.Image = matoKuva;
30        tappajaMato.Y = -200;
31        //tappajaMato.IgnoresGravity = true;
32        tappajaMato.IgnoresCollisionResponse = true;
33        Add(tappajaMato);
34        tappajaMato.LinearDamping = 0.9;
35        tappajaMato.AngularDamping = 0.95;
36
37        AddCollisionHandler(tappajaMato, matoTormasi);
38    }
39
40    void matoTormasi(PhysicsObject mato, PhysicsObject kohde)
41    {
42        MessageDisplay.Add("Mato osui");
43    }
44
45    void ohjaus()
46    {
47        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
48
49        Keyboard.Listen(Key.Left, ButtonState.Down, Kaannamatoa, null, tappajaMato, 1.0);
50        Keyboard.Listen(Key.Right, ButtonState.Down, Kaannamatoa, null, tappajaMato, -1.0);
51        Keyboard.Listen(Key.Up, ButtonState.Down, Liikutamatoa, null, tappajaMato,  100.0);
52    }
53
54   
55    void Kaannamatoa(PhysicsObject tappajaMato, double kaantoNopeus)
56    {
57       tappajaMato.AngularVelocity += kaantoNopeus; 
58    }
59
60    void Liikutamatoa(PhysicsObject alus, double nopeus)
61    {
62        Vector impulssi = Vector.FromLengthAndAngle(nopeus, tappajaMato.Angle);
63        tappajaMato.Hit(impulssi);
64    }
65}
Note: See TracBrowser for help on using the repository browser.