source: 2017/31/AaroP/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 9422

Revision 9422, 4.1 KB checked in by npo17_75, 23 months ago (diff)

melkein sain musiikin

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9
10public class FysiikkaPeli1 : PhysicsGame
11{
12    PhysicsObject Kuukavelia;
13
14    Image taustakuva = LoadImage("nature");
15    Image ukkelikuva = LoadImage("Motorbike");
16    PhysicsObject paa;
17    //
18    public override void Begin()
19    {
20
21        Luoalkuvalikko();
22
23
24
25
26    }
27    void LiikutaKuukaveliaa(Vector vektori)
28    {
29        Kuukavelia.Push(vektori);
30        Gravity = new Vector(20.0, -200.0);
31
32
33    }
34    void LuoKentta()
35    {
36        //vasenReuna = Level.CreateLeftBorder();
37
38    }
39    void Aloitapeli()
40    {
41        Level.Width = 5000;
42        Level.Background.Image = taustakuva;
43        Level.Background.FitToLevel();
44        PhysicsObject oikeaReuna = Level.CreateRightBorder();
45        PhysicsObject vasenReuna = Level.CreateLeftBorder();
46        oikeaReuna.Color = Color.ForestGreen;
47        vasenReuna.Color = Color.ForestGreen;
48
49
50
51        Kuukavelia = new PhysicsObject(60, 30);
52        Kuukavelia.Image = ukkelikuva;
53        //Kuukavelia.Shape = Shape.Circle;
54        //Kuukavelia.Color = Color.Fuchsia;
55        Add(Kuukavelia);
56        Kuukavelia.Mass = 2.0;
57        Kuukavelia.Tag = "pelaaja";
58
59        paa = new PhysicsObject(10, 10);
60        paa.Shape = Shape.Circle;
61        paa.CanRotate = false;
62        paa.IsVisible = false;
63        AddCollisionHandler(paa, PaaTormaa);
64        Add(paa);
65
66
67        // ax = new AxleJoint(Kuukavelia, paa);
68        //Time time = new Time();
69        //ax.Object2.Update(time);
70        // ax.Object2.Update();
71        //Add(ax);
72
73        //Surface.CreateLeft(Level);
74
75        Camera.Zoom(2.0);
76        Camera.Follow(Kuukavelia);
77
78        LuoKentta();
79
80        IsPaused = true;
81        Keyboard.Listen(Key.Space, ButtonState.Pressed, Pause, "Pysäyttää pelin");
82
83        GameObject taustapilvet = new GameObject(Screen.Width, Screen.Height);
84        taustapilvet.Image = taustakuva;
85        Add(taustapilvet, -1);
86        Layers[-1].RelativeTransition = new Vector(0.5, 0.5);
87
88        //Surface alaReuna = Surface.CreateBottom(Level, 30, 100, 40, 10);
89        //Add(alaReuna);
90        Surface alareuna2 = Surface.CreateBottom(Level, 160, 200, 20, 160);
91        Add(alareuna2);
92
93
94
95        //Surface.CreateLeft(Level);
96
97        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
98
99        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaKuukaveliaa, null, new Vector(-1000, 0));
100        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaKuukaveliaa, null, new Vector(1000, 0));
101        //Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaKuukaveliaa, null, new Vector(0, 1000));
102        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaKuukaveliaa, null, new Vector(0, -1000));
103
104        Keyboard.Listen(Key.W, ButtonState.Pressed, Luoalkuvalikko, null);
105
106    }
107    protected override void Update(Time time)
108    {
109        if (paa != null && Kuukavelia != null)
110        {
111
112            paa.Position = Kuukavelia.Position + (Kuukavelia.Angle + Angle.FromDegrees(50)).GetVector() * (Kuukavelia.Height / 2);
113        }
114
115
116        base.Update(time);
117
118    }
119    void PaaTormaa(PhysicsObject paa, PhysicsObject kohde)
120    {
121        if (kohde.Tag == "pelaaja") return;
122        MessageDisplay.Add("BOOOM! you die");
123        Explosion rajahdys = new Explosion(111);
124        rajahdys.Position = paa.Position;
125        Add(rajahdys);
126        paa.Destroy();
127        Kuukavelia.Destroy();
128        rajahdys.Speed = 500.0;
129        rajahdys.Force = 1000.0;
130        Timer.SingleShot(1.0, Luoalkuvalikko);
131    }
132
133    void Luoalkuvalikko()
134    {
135        ClearAll();
136        Level.Background.Color = Color.Black;
137        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
138"Aloita peli", "Lopeta");
139
140        alkuValikko.AddItemHandler(0, Aloitapeli);
141        alkuValikko.AddItemHandler(1, Exit);
142        alkuValikko.Color = Color.Silver;
143        alkuValikko.SetButtonTextColor(Color.Blue);
144        Add(alkuValikko);
145
146
147    }
148
149   
150}
151
152
Note: See TracBrowser for help on using the repository browser.