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

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