source: 2015/23/AkuL/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 5900

Revision 5900, 3.7 KB checked in by sieerinn, 5 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class FysiikkaPeli1 : PhysicsGame
10{
11    Image PelaajanKuva = LoadImage("spaceman");
12    Image PelaajanKuvaLiekki = LoadImage("flying_spaceman");
13    Image PelaajanKuvaVasen;
14    Image PelaajanKuvaLiekkiVasen;
15    Image MeteoriitinKuva = LoadImage("vodka");
16    Image LaatikonKuva = LoadImage("laatiokko");
17
18    bool oikealle = true;
19
20    private double liikkumisnopeus = 500;
21
22    public override void Begin()
23    {
24        PelaajanKuvaVasen = Image.Mirror(PelaajanKuva);
25        PelaajanKuvaLiekkiVasen = Image.Mirror(PelaajanKuvaLiekki);
26
27        Gravity = new Vector(0, -0);
28
29        Level.Background.CreateStars(10000);
30
31        //Explosion rajahdys = new Explosion(100);
32        //Add(rajahdys);
33
34       
35
36        PhysicsObject pelaaja = new PhysicsObject(50, 120);
37        pelaaja.Shape = Shape.Rectangle;
38        pelaaja.Image = PelaajanKuva;
39        pelaaja.Mass = 5.0;
40        pelaaja.IgnoresExplosions = false;
41        Add(pelaaja);
42
43       
44        Keyboard.Listen(Key.W, ButtonState.Down, Liikuta, null, pelaaja, -2200.0);
45        Keyboard.Listen(Key.W, ButtonState.Released, Pysahdy, null, pelaaja);
46        Keyboard.Listen(Key.A, ButtonState.Down, pyorita, null, pelaaja, 30000.0);
47        Keyboard.Listen(Key.D, ButtonState.Down, pyorita, null, pelaaja, -30000.0);
48
49        PhysicsObject meteoriitti = new PhysicsObject(20, 60);
50        meteoriitti.Shape = Shape.Circle;
51        meteoriitti.Image = MeteoriitinKuva;
52        meteoriitti.Mass = 5.0;
53        Add(meteoriitti);
54
55        PhysicsObject Laatikko = new PhysicsObject(50, 50);
56        Laatikko.Shape = Shape.Rectangle;
57        Laatikko.Image = LaatikonKuva;
58        Laatikko.Mass = 10.0;
59        Add(Laatikko);
60
61        Camera.Follow(pelaaja);
62        Camera.ZoomFactor = 1.5;
63
64       // Surface alaReuna = Surface.CreateBottom(Level, 30, 100, 40, 10);
65        //Add(alaReuna);
66        //alaReuna.Color = Color.Gray;
67        //Surface ylaReuna = Surface.CreateTop(Level, 30, 70, 40, 10);
68        //Add(ylaReuna);
69        //ylaReuna.Color = Color.Gray;
70        //Surface vasenReuna = Surface.CreateLeft(Level, 30, 100, 30, 10);
71        //Add(vasenReuna);
72        //vasenReuna.Color = Color.Gray;
73        //Surface oikeaReuna = Surface.CreateRight(Level, 30, 120, 40, 10);
74        //Add(oikeaReuna);
75        //oikeaReuna.Color = Color.Gray;
76
77        MediaPlayer.Play("russianrap");
78        MediaPlayer.IsRepeating = true;
79
80
81        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
82        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
83
84    }
85
86    void Liikuta(PhysicsObject pelaaja, double suunta)
87    {
88        pelaaja.Push((pelaaja.AbsoluteAngle-Angle.FromDegrees(90)).GetVector() * suunta);
89        pelaaja.Image = oikealle? PelaajanKuvaLiekki : PelaajanKuvaLiekkiVasen;
90        }
91    void pyorita(PhysicsObject pelaaja, double suunta)
92    {
93        pelaaja.ApplyTorque(suunta);
94        if (suunta < 0)
95            oikealle = true;
96        else
97            oikealle = false;
98
99        pelaaja.Image = oikealle ? PelaajanKuva : PelaajanKuvaVasen;
100    }
101
102    void LuoKentta()
103    {
104     
105    }
106
107    void LisaaTaso(Vector paikka, double leveys, double korkeus)
108    {
109        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
110        taso.Position = paikka;
111        taso.Color = Color.Gray;
112        Add(taso);
113    }
114
115    void Pysahdy(PhysicsObject pelaaja)
116    {
117        pelaaja.Image = oikealle? PelaajanKuva : PelaajanKuvaVasen;
118    }
119}
Note: See TracBrowser for help on using the repository browser.