source: 2017/24/SamuelN/Bottleflip/Bottleflip/Bottleflip/Bottleflip.cs @ 9467

Revision 9467, 6.7 KB checked in by mianhayr, 20 months 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 Bottleflip : PhysicsGame
10{
11    PhysicsObject pullo;
12    PhysicsObject alareuna;
13    PhysicsObject ylareuna;
14    PhysicsObject taso;
15    int y;
16    int i;
17    int hax;
18
19    public override void Begin()
20    {
21       
22        MediaPlayer.Play("IttyBitty");
23        IsFullScreen = true;
24        IsMouseVisible = true;
25        MultiSelectWindow alkuValikko = new MultiSelectWindow("Bottle Flip v2.0", "Start Game (Select Bottle)", "Exit");
26        //Widget ruutu1 = new Widget(80, 240);
27        //ruutu1.X = 200;
28        //ruutu1.Image = LoadImage("pullo");
29        //Add(ruutu1);
30        //
31        //Widget ruutu2 = new Widget(80, 240);
32        //ruutu2.X = -200;
33        //ruutu2.Image = LoadImage("pullo");
34        //Add(ruutu2);
35        //
36        alkuValikko.IsVisible = true;
37        alkuValikko.AddItemHandler(0, OpenShop);
38        alkuValikko.AddItemHandler(1, Exit);
39        Add(alkuValikko);
40       
41    }
42    void OpenShop()
43    {
44        InputWindow kysymysIkkuna = new InputWindow("Write bottle number (1 for default)");
45        kysymysIkkuna.TextEntered += bottle;
46        Add(kysymysIkkuna);
47    }
48    void bottle(InputWindow ikkuna)
49    {
50        string vastaus = ikkuna.InputBox.Text;
51
52        if (vastaus == "1")
53        {
54            i = 1;
55        }
56        else if (vastaus == "2")
57        {
58            i = 2;
59        }
60        else if (vastaus == "3")
61        {
62            i = 3;
63        }
64        else if (vastaus == "4")
65        {
66            i = 4;
67        }
68        else if (vastaus == "5")
69        {
70            i = 5;
71        }
72        else if (vastaus == "exit")
73        {
74            Exit();
75        }
76        AloitaPeli();
77    }
78    void Nimi ()
79    {
80        InputWindow kysymysIkkuna = new InputWindow("Write your name");
81        kysymysIkkuna.TextEntered += nim;
82        Add(kysymysIkkuna);
83    }
84    void nim (InputWindow h4x)
85    {
86        string vast = h4x.InputBox.Text;
87        if (vast == "admin")
88        {
89            hax = 1;
90            AloitaPeli();
91        }
92        else
93            hax = 0;
94        AloitaPeli();
95    }
96    void AloitaPeli()
97    {
98        ClearAll();
99        LuoPistelaskuri();
100        LuoLevel();
101        MediaPlayer.Play("PinballSpring");
102        MediaPlayer.IsRepeating = true;
103    }
104    void LuoLevel()
105    {
106        Color vari = RandomGen.NextColor();
107        Color tausta = RandomGen.NextColor();
108        Gravity = new Vector(0, -800);
109       
110        Level.Background.Color = tausta;
111
112        pullo = new PhysicsObject(40, 120);
113        Camera.ZoomFactor = 1;
114        if (i == 1)
115        {
116            pullo.Image = LoadImage("pullo");
117        }
118        else if (i == 2)
119        {
120            pullo.Image = LoadImage("pullo2");
121        }
122        else if (i == 3)
123        {
124            pullo.Image = LoadImage("pullo3");
125        }
126        else if (i == 4)
127        {
128            pullo.Image = LoadImage("pullo4");
129        }
130        else if (i == 5)
131        {
132            pullo.Image = LoadImage("pullo5");
133        }
134        pullo.Y = 0;
135        pullo.Shape = Shape.FromImage(LoadImage("pullo"));
136        AddCollisionHandler(pullo, "alareuna", d);
137        Add(pullo);
138
139        alareuna = PhysicsObject.CreateStaticObject(2000, 200);
140        alareuna.Y = -600;
141        alareuna.Color = vari;
142        alareuna.Tag = "alareuna";
143        Add(alareuna);
144
145        ylareuna = PhysicsObject.CreateStaticObject(2000, 200);
146        ylareuna.Y = 600;
147        ylareuna.Color = vari;
148        ylareuna.Tag = "alareuna";
149        Add(ylareuna);
150
151        PhysicsObject vasenreuna = PhysicsObject.CreateStaticObject(200, 3000);
152        vasenreuna.X = -1100;
153        vasenreuna.Y = 900;
154        Add(vasenreuna);
155
156        taso = PhysicsObject.CreateStaticObject(300, 30);
157        taso.X = 0;
158        taso.Y = -100;
159        taso.Color = vari;
160        Add(taso);
161
162        PhysicsObject oikeareuna = PhysicsObject.CreateStaticObject(200, 3000);
163        oikeareuna.X = 1100;
164        oikeareuna.Y = 900;
165        Add(oikeareuna);
166
167        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
168        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaPeli, "Restart");
169        Keyboard.Listen(Key.Space, ButtonState.Released, Pyori, "Heitä pullo", pullo);
170        Keyboard.Listen(Key.Space, ButtonState.Down, AloitaLaskuri, "Heitä pullo");
171        Keyboard.Listen(Key.F12, ButtonState.Pressed, Input, "input");
172
173        Timer taustatimer = new Timer();
174        taustatimer.Interval = 1;
175        taustatimer.Timeout += colorChanged;
176        taustatimer.Start();
177
178    }
179    void colorChanged()
180    {
181        Color vari = RandomGen.NextColor();
182        Color vari2 = RandomGen.NextColor();
183        Level.Background.FadeColorTo(vari, 1);
184        alareuna.FadeColorTo(vari2, 1);
185        ylareuna.FadeColorTo(vari2, 1);
186        taso.FadeColorTo(vari2, 1);
187    }
188    void Input ()
189    {
190        InputWindow kysymysIkkuna = new InputWindow("Cheat Engine 6.5");
191        kysymysIkkuna.TextEntered += ProcessInput;
192        Add(kysymysIkkuna);
193        Pause();
194    }
195    void ProcessInput(InputWindow ikkuna)
196    {
197        Pause();
198        string vastaus = ikkuna.InputBox.Text;
199        if (vastaus == "flip true")
200        {
201            pullo.Angle = Angle.FromDegrees(0);
202        }
203        else if (vastaus == "exit")
204        {
205            Exit();
206        }
207        else if (vastaus == "admin")
208        {
209            Nimi();
210        }
211    }
212    void d (PhysicsObject pullo, PhysicsObject alareuna)
213    {
214        if (pullo.Bottom < alareuna.Y + 30)
215        {
216            pisteLaskuri.Value += 1;
217        }
218    }
219    Timer aikaLaskuri;
220    void AloitaLaskuri()
221    {
222        y = 0;
223        aikaLaskuri = new Timer();
224        aikaLaskuri.Interval = 0.1;
225        aikaLaskuri.Timeout += delegate {y = y + 10; };
226        aikaLaskuri.Start();
227       
228    }
229    void Pyori(PhysicsObject pullo)
230    {
231        pullo.Hit(new Vector(50, y));
232        pullo.AngularVelocity = 30;
233        if (hax == 1)
234        {
235            MessageDisplay.Add(y.ToString());
236        }
237        aikaLaskuri.Reset();
238    }
239    IntMeter pisteLaskuri;
240
241    void LuoPistelaskuri()
242    {
243        pisteLaskuri = new IntMeter(0);
244
245        Label pisteNaytto = new Label();
246        pisteNaytto.X = Screen.Left + 100;
247        pisteNaytto.Y = Screen.Top - 100;
248        pisteNaytto.TextColor = Color.White;
249        pisteNaytto.IntFormatString = "Flips: {0:D1}";
250        pisteNaytto.BindTo(pisteLaskuri);
251        Add(pisteNaytto);
252    }
253}
Note: See TracBrowser for help on using the repository browser.