source: 2014/30/OonaH/GoldenMaknae2/GoldenMaknae2/GoldenMaknae2/GoldenMaknae2.cs @ 5590

Revision 5590, 4.8 KB checked in by oomahutt, 6 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 GoldenMaknae2 : PhysicsGame
10{
11    PhysicsObject Kookie;
12    PhysicsObject Reuna;
13    PhysicsObject tavarat;
14
15    IntMeter pisteLaskuri;
16
17    Image KookieKuva = LoadImage("Kookie");
18    Image LetterKuva = LoadImage("Letter");
19    Image RapmonKuva = LoadImage("Rapmon");
20
21
22    Vector nopeusOikealle = new Vector(300, 0);
23    Vector nopeusVasemmalle = new Vector(-300, 0);
24
25
26    public override void Begin()
27    {
28        Ajastin();
29        LuoKentta();
30        LuoPisteLaskuri();
31        LuoKookie();
32        AsetaOhjaimet();
33    }
34
35    void Ajastin()
36    {
37        Timer Ajastin = new Timer();
38        Ajastin.Interval = 1.5;
39        Ajastin.Timeout += LuoHahmot;
40        Ajastin.Start();
41
42    }
43
44    void LuoKentta()
45    {
46        SetWindowSize(600,800);
47        Level.Size = new Vector(600, 800);
48        Reuna = PhysicsObject.CreateStaticObject(580, 20, Shape.Rectangle);
49        Reuna.Position = new Vector(0, Level.Bottom);
50        Reuna.IsVisible = true;
51        Add(Reuna);
52
53        PhysicsObject oikeaReuna = Level.CreateRightBorder();
54        oikeaReuna.Restitution = 1.0;
55
56        PhysicsObject vasenReuna = Level.CreateLeftBorder();
57        vasenReuna.Restitution = 1.0;
58
59        AddCollisionHandler(Reuna, "Hyung", Osuma);
60        AddCollisionHandler(Reuna, "Letter", KirjeenOsuma);
61        Level.CreateBorders();
62
63       
64
65    }
66
67    void LuoHahmot()
68    {
69        bool tuleekoKirje = RandomGen.NextBool();
70        if (tuleekoKirje == true)
71        {
72            LuoHahmoja(1, LetterKuva, "Letter");
73        }
74        else
75        {
76            LuoHahmoja(1, RapmonKuva, "Hyung");
77        }
78
79    }
80
81    void AsetaOhjaimet()
82    {
83        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Oikealle.", Kookie, nopeusOikealle);
84        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, Kookie, Vector.Zero);
85
86        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Vasemmalle.", Kookie, nopeusVasemmalle);
87        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, Kookie, Vector.Zero);
88
89        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
90    }
91
92    void AsetaNopeus(PhysicsObject hahmo, Vector nopeus)
93    {
94        if ((nopeus.X > 0) && (hahmo.Right > Level.Right))
95        {
96            hahmo.Velocity = Vector.Zero;
97            return;
98        }
99
100        if ((nopeus.X < 0) && (hahmo.Left < Level.Left))
101        {
102            hahmo.Velocity = Vector.Zero;
103            return;
104        }
105
106        hahmo.Velocity = nopeus;
107    }
108
109    void LuoKookie()
110    {
111        Kookie = PhysicsObject.CreateStaticObject(50.0, 50.0);
112        Kookie.X = 0.0;
113        Kookie.Y = Level.Bottom + 30;
114        Kookie.Image = KookieKuva;
115        Kookie.Restitution = 1.0;
116
117        Add(Kookie);
118
119        AddCollisionHandler(Kookie, "Hyung", Kuolema);
120        AddCollisionHandler(Kookie, "Letter", PisteidenSaanti);
121    }
122
123    void Osuma(PhysicsObject Reuna, PhysicsObject osuneetEsineet)
124    {
125        osuneetEsineet.Destroy();
126
127    }
128
129    void KirjeenOsuma(PhysicsObject Reuna, PhysicsObject osuneetEsineet)
130    {
131        osuneetEsineet.Destroy();
132        pisteLaskuri.Value -= 10;
133    }
134
135    void LuoHahmoja(int maara, Image Kuva, string tag)
136    {
137        int i = 0;
138        while (i < maara)
139        {
140            double x = RandomGen.NextDouble(Level.Left + 10, Level.Right -10);
141            tavarat = LuoTavarat(x, Level.Top - 20, 20.0, RapmonKuva);
142            tavarat.Tag = tag;
143            tavarat.Image = Kuva;
144            tavarat.Velocity = new Vector(0, -200);
145            Add(tavarat);
146            i++;
147        }
148    }
149
150    PhysicsObject LuoTavarat(double x, double y, double sade, Image Kuva)
151    {
152        PhysicsObject tavara = new PhysicsObject(sade * 2.0, sade * 2.0, Shape.Circle);
153        tavara.Position = new Vector(x, y);
154        return tavara;
155    }
156
157    void Kuolema(PhysicsObject Kookie, PhysicsObject kohde)
158    {
159        Kookie.Destroy();
160        MessageDisplay.Add("Hävisit");
161    }
162
163    void PisteidenSaanti(PhysicsObject Kookie, PhysicsObject kohde)
164    {
165        kohde.Destroy();
166        pisteLaskuri.Value = pisteLaskuri.Value + 10;
167    }
168
169    void LuoPisteLaskuri()
170    {
171        pisteLaskuri = new IntMeter(0,-1000,1000);
172
173        Label pisteNaytto = new Label();
174        pisteNaytto.X = Level.Left + 100;
175        pisteNaytto.Y = Level.Top - 50;
176        pisteNaytto.TextColor = Color.Black;
177        pisteNaytto.Color = Color.Transparent;
178        pisteNaytto.BindTo(pisteLaskuri);
179        pisteNaytto.IntFormatString = "Points: {0:D1}";
180
181        Add(pisteNaytto);
182    }
183}
Note: See TracBrowser for help on using the repository browser.