source: 2015/24/MikeJ/FysiikkaPeli8/FysiikkaPeli8/FysiikkaPeli8/FysiikkaPeli8.cs @ 6012

Revision 6012, 4.6 KB checked in by mijarvin, 4 years ago (diff)

Stuffs

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class FysiikkaPeli8 : PhysicsGame
10{
11
12    Vector nopeusvasenmalle = new Vector(-100.0, 0.0);
13    Vector nopeusoikealle = new Vector(100.0, 0.0);
14    Vector nopeusalkaa = new Vector(0.0, 2500.0);
15
16    double maxNopeus = 100.0;
17    Boolean peliAlkanut = false;
18
19    PhysicsObject rocket;
20
21    Image rocketpic = LoadImage("Rocketgame");
22
23
24    public override void Begin()
25    {
26        ClearAll();
27       
28        IsFullScreen = true;
29        peliAlkanut = false;
30        luokentta();
31        Ohjaimet();
32
33        Camera.ZoomFactor = 2;
34        Camera.Follow(rocket);
35        Camera.FollowOffset = new Vector(0.0, Screen.Top - 100); 
36
37        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
38    }
39
40    void Luorocket(Vector paikka, double leveys, double korkeus)
41    {
42        rocket = new PhysicsObject(rocketpic);
43        rocket.Position = paikka;
44        rocket.Mass = 7;
45        rocket.CanRotate = false;
46        rocket.LinearDamping = 0.98;   
47        //rocket.Color = Color.Aquamarine;
48
49        AddCollisionHandler(rocket, "Meteoriitti", tormays);
50
51        peliAlkanut = true;
52       
53        Add(rocket);
54
55        Timer rocketAika = new Timer();
56        rocketAika.Interval = 0.1;
57        rocketAika.Timeout += delegate
58        {
59            rocket.Move(new Vector(0, maxNopeus));       
60        };
61        //rocketAika.Start();
62    }
63
64    void Ohjaimet()
65    {
66        Keyboard.Listen(Key.A, ButtonState.Down, Asetanopeus, "Pelaaja liikuta rocketia vasenmalle", rocket, nopeusvasenmalle);
67        Keyboard.Listen(Key.D, ButtonState.Down, Asetanopeus, "Pelaaja liikuta rocketia oikealle", rocket, nopeusoikealle);
68        //Keyboard.Listen(Key.Space, ButtonState.Up, Asetanopeus, "Pelaaja Aloitaa Pelin", rocket, nopeusalkaa);
69        Keyboard.Listen(Key.R, ButtonState.Down, Restart, "Pelaaja Aloitaa Alusta");
70    }
71   
72
73    void Asetanopeus(PhysicsObject rocket, Vector nopeus)
74    {
75        //rocket.Move(nopeus + new Vector(0, maxNopeus));
76        rocket.Move(nopeus);
77    }
78
79    void luokentta()
80    {
81        Level.Background.CreateStars(800);
82
83        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttarel");
84        ruudut.SetTileMethod(Color.Black, LuoMeteoriiti);
85        ruudut.SetTileMethod(Color.Gold, seinät);
86        ruudut.SetTileMethod(Color.Red, Luokatto);
87        ruudut.SetTileMethod(Color.Gray, Luorocket);
88
89        ruudut.Execute(20.0, 20.0);
90
91    }
92
93    void LuoMeteoriiti(Vector Meteoriiti, double leveys, double korkeus)
94    {
95        PhysicsObject Taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
96        Taso.Position = Meteoriiti;
97        Taso.Color = Color.DarkGray;
98        Taso.Tag = "Meteoriitti";
99        Add(Taso);
100
101    }
102
103    void tormays(PhysicsObject tormaaja, PhysicsObject tormatty)
104    {
105        Explosion rajahdys = new Explosion(50000);
106        rajahdys.Position = rocket.Position;
107        Add(rajahdys);
108
109        rocket.Destroy();
110
111        Label Tekstikentta = new Label(100.0, 30.0, "You Lost GG");
112        Tekstikentta.Color = Color.YellowGreen;
113        Add(Tekstikentta);
114
115    }
116
117    void seinät(Vector seina, double leveys, double korkeus)
118    {
119        PhysicsObject seinat = PhysicsObject.CreateStaticObject(leveys*0.2, korkeus);
120        seinat.Position = seina;
121        seinat.Color = Color.Transparent;
122        Add(seinat);
123    }
124
125    void Luokatto(Vector katto, double leveys, double korkeus)
126    {
127        PhysicsObject kattot = PhysicsObject.CreateStaticObject(leveys, korkeus);
128        kattot.Position = katto;
129        kattot.Color = Color.BrightGreen;
130        Add(kattot);
131        AddCollisionHandler(kattot, rocket, voitto);
132    }
133
134    void voitto(PhysicsObject tormaaja, PhysicsObject Tormattty)
135    {
136        Explosion rajahdys = new Explosion(50000);
137        rajahdys.Position = rocket.Position;
138        Add(rajahdys);
139
140        rocket.Destroy();
141
142        Label Tekstikentta = new Label(100.0, 30.0, "GRATZ, YOU WON, Press R To Restart");
143        Tekstikentta.Color = Color.Ultramarine;
144        Add(Tekstikentta);
145
146       
147   }
148
149    protected override void Update(Microsoft.Xna.Framework.GameTime gameTime)
150    {
151        if (peliAlkanut)
152        {
153            rocket.Position += new Vector(0.0, gameTime.ElapsedGameTime.TotalSeconds * maxNopeus);
154        }
155        base.Update(gameTime);
156    }
157
158    void Restart()
159    {
160        Begin();
161    }
162}
Note: See TracBrowser for help on using the repository browser.