source: 2018/23/JEREMIASM/Blockjump/Blockjump/Blockjump.cs @ 9608

Revision 9608, 7.0 KB checked in by jemannin, 22 months ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Widgets;
7
8public class Blockjump : PhysicsGame
9{
10    const double nopeus = 200;
11    const double hyppyNopeus = 800;
12    const int RUUDUN_KOKO = 40;
13
14    PlatformCharacter laatikko;
15
16    Image laatikkoKuva = LoadImage("laatikko");
17    Image kolikkoKuva = LoadImage("kolikko");
18
19    SoundEffect maaliAani = LoadSoundEffect("maali");
20
21    public override void Begin()
22    {
23        Gravity = new Vector(0, -1000);
24
25        LuoKentta();
26        LisaaNappaimet();
27
28        Camera.Follow(laatikko);
29        Camera.ZoomFactor = 1.2;
30        Camera.StayInLevel = true;
31    }
32
33    void LuoKentta()
34    {
35        Level.Background.Color = Color.DarkRed;
36        TileMap kentta = TileMap.FromLevelAsset("kentta1");
37        kentta.SetTileMethod('*', LisaaKolikko);
38        kentta.SetTileMethod('2', LisaaTaso);
39        kentta.SetTileMethod('1', LisaaTasoVasen);
40        kentta.SetTileMethod('3', LisaaTasoOikea);
41        kentta.SetTileMethod('5', LisaaHaviavaTaso);
42        kentta.SetTileMethod('4', LisaaHaviavaTasoVasen);
43        kentta.SetTileMethod('6', LisaaHaviavaTasoOikea);
44        kentta.SetTileMethod('#', LisaaAlkuTaso);
45        kentta.SetTileMethod('V', LisaaAlkuTasoVasen);
46        kentta.SetTileMethod('O', LisaaAlkuTasoOikea);
47        kentta.SetTileMethod('N', LisaaPelaaja);
48        kentta.SetTileMethod('!', LisaaPiikki);
49        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
50        Level.CreateBorders(); 
51    }
52    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
53    {
54
55    }
56    void LisaaKolikko(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject kolikko = PhysicsObject.CreateStaticObject(leveys - 15, korkeus - 15);
59        kolikko.IgnoresCollisionResponse = true;
60        kolikko.Position = paikka;
61        kolikko.Image = kolikkoKuva;
62        kolikko.Tag = "kolikko";
63        Add(kolikko);
64    }
65    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
66    {
67        laatikko = new PlatformCharacter(leveys + 10, korkeus + 10);
68        laatikko.Position = paikka;
69        laatikko.Mass = 4.0;
70        laatikko.Image = laatikkoKuva;
71        AddCollisionHandler(laatikko, "kolikko", KeraaKolikko);
72        Add(laatikko);
73    }
74    void LisaaNappaimet()
75    {
76        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
77        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
78
79        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", laatikko, -nopeus);
80        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", laatikko, nopeus);
81        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Hyppää", laatikko, hyppyNopeus); 
82    }
83    void Liikuta(PlatformCharacter hahmo, double nopeus)
84    {
85        hahmo.Walk(nopeus);
86    }
87    void Hyppaa(PlatformCharacter hahmo, double nopeus)
88    {
89        hahmo.Jump(nopeus);
90    }
91    void KeraaKolikko(PhysicsObject hahmo, PhysicsObject tahti)
92    {
93        maaliAani.Play();
94        tahti.Destroy();
95    }
96    void LisaaTaso(Vector paikka, double leveys, double korkeus)
97    {
98        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
99        taso.Position = paikka;
100        taso.Color = Color.Black;
101        Add(taso);
102
103        taso = PhysicsObject.CreateStaticObject(leveys, korkeus -10);
104        taso.Position = paikka;
105        taso.Color = Color.Gray;
106        Add(taso);
107    }
108    void LisaaTasoOikea(Vector paikka, double leveys, double korkeus)
109    {
110        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
111        taso.Position = paikka;
112        taso.Color = Color.Black;
113        Add(taso);
114
115        taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 10);
116        taso.Position = paikka + new Vector(-5, 0);
117        taso.Color = Color.Gray;
118        Add(taso);
119    }
120    void LisaaTasoVasen(Vector paikka, double leveys, double korkeus)
121    {
122        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
123        taso.Position = paikka;
124        taso.Color = Color.Black;
125        Add(taso);
126
127        taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 10);
128        taso.Position = paikka + new Vector(5, 0);
129        taso.Color = Color.Gray;
130        Add(taso);
131    }
132    void LisaaHaviavaTaso(Vector paikka, double leveys, double korkeus)
133    {
134        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
135        taso.Position = paikka;
136        taso.Color = Color.Black;
137        Add(taso);
138
139        taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 10);
140        taso.Position = paikka;
141        taso.Color = Level.Background.Color;
142        Add(taso);
143    }
144    void LisaaHaviavaTasoOikea(Vector paikka, double leveys, double korkeus)
145    {
146        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
147        taso.Position = paikka;
148        taso.Color = Color.Black;
149        Add(taso);
150
151        taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 10);
152        taso.Position = paikka + new Vector(-5, 0);
153        taso.Color = Level.Background.Color;
154        Add(taso);
155    }
156    void LisaaHaviavaTasoVasen(Vector paikka, double leveys, double korkeus)
157    {
158        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
159        taso.Position = paikka;
160        taso.Color = Color.Black;
161        Add(taso);
162
163        taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 10);
164        taso.Position = paikka + new Vector(5, 0);
165        taso.Color = Level.Background.Color;
166        Add(taso);
167    }
168    void LisaaAlkuTaso(Vector paikka, double leveys, double korkeus)
169    {
170        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 20);
171        taso.Position = paikka;
172        taso.Color = Color.Black;
173        Add(taso);
174
175        taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 30);
176        taso.Position = paikka;
177        taso.Color = Color.Gray;
178        Add(taso);
179    }
180
181    void LisaaAlkuTasoOikea(Vector paikka, double leveys, double korkeus)
182    {
183        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 20);
184        taso.Position = paikka;
185        taso.Color = Color.Black;
186        Add(taso);
187
188        taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 30);
189        taso.Position = paikka + new Vector(-5, 0);
190        taso.Color = Color.Gray;
191        Add(taso);
192    }
193    void LisaaAlkuTasoVasen(Vector paikka, double leveys, double korkeus)
194    {
195        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 20);
196        taso.Position = paikka;
197        taso.Color = Color.Black;
198        Add(taso);
199
200        taso = PhysicsObject.CreateStaticObject(leveys, korkeus - 30);
201        taso.Position = paikka + new Vector(5, 0);
202        taso.Color = Color.Gray;
203        Add(taso);
204    }
205}
Note: See TracBrowser for help on using the repository browser.