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

Revision 8644, 5.5 KB checked in by npo17_6, 4 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 Bottleflip : PhysicsGame
10{
11    PhysicsObject pullo;
12    PhysicsObject alareuna;
13    PhysicsObject ylareuna;
14    int y;
15
16    public override void Begin()
17    {
18       
19        MediaPlayer.Play("IttyBitty");
20        IsFullScreen = true;
21        IsMouseVisible = true;
22        MultiSelectWindow alkuValikko = new MultiSelectWindow("Bottle Flip Sim 2.0", "Start", "Buy Bottles", "Exit");
23        alkuValikko.Image = LoadImage("pullo");
24        alkuValikko.IsVisible = false;
25        alkuValikko.AddItemHandler(0, AloitaPeli);
26        alkuValikko.AddItemHandler(1, OpenShop);
27        alkuValikko.AddItemHandler(2, Exit);
28        Add(alkuValikko);
29       
30    }
31    void OpenShop()
32    {
33        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Exit");
34
35        Widget ruutu1 = new Widget(120.0, 360.0);
36        ruutu1.X = Screen.LeftSafe + 200;
37        ruutu1.Y = Screen.TopSafe - 200;
38        ruutu1.Image = LoadImage("pullo");
39        Add(ruutu1);
40
41        Widget ruutu2 = new Widget(120.0, 360.0);
42        ruutu2.X = Screen.LeftSafe + 450;
43        ruutu2.Y = Screen.TopSafe - 200;
44        ruutu2.Image = LoadImage("pullo2");
45        Add(ruutu2);
46
47        Widget ruutu3 = new Widget(200.0, 300.0);
48        ruutu3.X = Screen.LeftSafe + 700;
49        ruutu3.Y = Screen.TopSafe - 200;
50        //ruutu3.Image = LoadImage("pullo3");
51        Add(ruutu3);
52    }
53    void AloitaPeli()
54    {
55        ClearAll();
56        LuoPistelaskuri();
57        LuoLevel();
58        MediaPlayer.Play("PinballSpring");
59        MediaPlayer.IsRepeating = true;
60    }
61    void LuoLevel()
62    {
63        Color vari = RandomGen.NextColor();
64        Color vari2 = RandomGen.NextColor();
65        Gravity = new Vector(0, -800);
66       
67        Level.Background.Color = vari2;
68
69        pullo = new PhysicsObject(40, 120);
70        Camera.ZoomFactor = 1;
71        pullo.Image = LoadImage("pullo");
72        pullo.Y = 0;
73        pullo.Shape = Shape.FromImage(LoadImage("pullo"));
74        AddCollisionHandler(pullo, "alareuna", d);
75        Add(pullo);
76
77        /*PhysicsObject pullonpohja = new PhysicsObject(20, 10);
78        pullonpohja.X = pullo.X;
79        pullonpohja.Y = pullo.Bottom + 10;
80        Add(pullonpohja);
81
82        AxleJoint aj = new AxleJoint(pullo, pullonpohja);
83       
84        Add(aj);*/
85
86        alareuna = PhysicsObject.CreateStaticObject(2000, 200);
87        alareuna.Y = -600;
88        alareuna.Color = vari;
89        alareuna.Tag = "alareuna";
90        Add(alareuna);
91
92        ylareuna = PhysicsObject.CreateStaticObject(2000, 200);
93        ylareuna.Y = 600;
94        ylareuna.Color = vari;
95        ylareuna.Tag = "alareuna";
96        Add(ylareuna);
97
98        PhysicsObject vasenreuna = PhysicsObject.CreateStaticObject(200, 3000);
99        vasenreuna.X = -1100;
100        vasenreuna.Y = 900;
101        Add(vasenreuna);
102
103        PhysicsObject taso = PhysicsObject.CreateStaticObject(300, 30);
104        taso.X = 0;
105        taso.Y = -100;
106        taso.Color = vari;
107        Add(taso);
108
109        PhysicsObject oikeareuna = PhysicsObject.CreateStaticObject(200, 3000);
110        oikeareuna.X = 1100;
111        oikeareuna.Y = 900;
112        Add(oikeareuna);
113
114        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
115        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaPeli, "Restart");
116        Keyboard.Listen(Key.Space, ButtonState.Released, Pyori, "Heitä pullo", pullo);
117        Keyboard.Listen(Key.Space, ButtonState.Down, AloitaLaskuri, "Heitä pullo");
118        Keyboard.Listen(Key.F12, ButtonState.Pressed, Input, "input");
119
120    }
121    void Input ()
122    {
123        InputWindow kysymysIkkuna = new InputWindow("Cheat Engine 6.5");
124        kysymysIkkuna.TextEntered += ProcessInput;
125        Add(kysymysIkkuna);
126        Pause();
127    }
128    void ProcessInput(InputWindow ikkuna)
129    {
130        Pause();
131        string vastaus = ikkuna.InputBox.Text;
132        if (vastaus == "flip = true")
133        {
134            pullo.Angle = Angle.FromDegrees(0);
135        }
136        else if (vastaus == "   exit")
137        {
138            Exit();
139        }
140        else if (vastaus == "bottle1")
141        {
142            pullo.Image = LoadImage("pullo");
143        }
144        else if (vastaus == "bottle2")
145        {
146            pullo.Image = LoadImage("pullo2");
147        }
148    }
149    void d (PhysicsObject pullo, PhysicsObject alareuna)
150    {
151        if (pullo.Bottom == alareuna.Top)
152        {
153            pisteLaskuri.Value += 1;
154        }
155    }
156    Timer aikaLaskuri;
157    void AloitaLaskuri()
158    {
159        y = 0;
160        aikaLaskuri = new Timer();
161        aikaLaskuri.Interval = 0.1;
162        aikaLaskuri.Timeout += delegate {y = y + 10; };
163        aikaLaskuri.Start();
164       
165    }
166    void Pyori(PhysicsObject pullo)
167    {
168        pullo.Hit(new Vector(50, y));
169        pullo.AngularVelocity = 30;
170        MessageDisplay.Add(y.ToString());
171        aikaLaskuri.Reset();
172    }
173    IntMeter pisteLaskuri;
174
175    void LuoPistelaskuri()
176    {
177        pisteLaskuri = new IntMeter(0);
178
179        Label pisteNaytto = new Label();
180        pisteNaytto.X = Screen.Left + 100;
181        pisteNaytto.Y = Screen.Top - 100;
182        pisteNaytto.TextColor = Color.White;
183        pisteNaytto.IntFormatString = "Flips: {0:D1}";
184        pisteNaytto.BindTo(pisteLaskuri);
185        Add(pisteNaytto);
186    }
187}
Note: See TracBrowser for help on using the repository browser.