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

Revision 9444, 4.3 KB checked in by npo17_75, 2 years ago (diff)

sain valmiiks

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