source: 2017/23/VenlaV/platformerproto/platformerproto/platformerproto/platformerproto.cs @ 8445

Revision 8445, 7.5 KB checked in by nupeohje, 4 years ago (diff)

Controls, One Stage.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class platformerproto : PhysicsGame
10{
11    PlatformCharacter pelaaja;
12    Image ruohokuva = LoadImage("ruoho");
13    Image lehdetkuva = LoadImage("Leaf_Floor");
14    Image multa = LoadImage("dirt");
15    Image pilvi = LoadImage("cloud");
16    Image runko = LoadImage("treer");
17    Image multat = LoadImage("dirtdark");
18    Image puulb = LoadImage("tree l b");
19    Image puultk = LoadImage("tree l t");
20    Image puurb = LoadImage("tree r b");
21    Image puurtk = LoadImage("tree r t");
22    Image doork = LoadImage("door");
23    Image doorugk = LoadImage("doorug");
24    Image coin = LoadImage("mariocoin");
25    Image portalk = LoadImage("portal tile");
26    Image borderk = LoadImage("Border");
27    int Laskuri = 0;
28    int Hyppy = 0;
29
30    int kenttaNro = 1;
31
32    public override void Begin()
33    {
34        SeuraavaKentta();
35    }
36
37    void SeuraavaKentta()
38    {
39        ClearAll();
40
41        if (kenttaNro == 1) LuoKentta("kenttatestui");
42        else if (kenttaNro == 2) LuoKentta("kentta2");
43        else if (kenttaNro == 3) LuoKentta("kentta3");
44        else if (kenttaNro > 3) Exit();
45
46        Camera.Zoom(4);
47        Camera.Follow(pelaaja);
48
49        AddCollisionHandler(pelaaja, "Kolikko", SaaRahaa);
50        AddCollisionHandler(pelaaja, "Maa", LisaaHyppyja);
51        AddCollisionHandler(pelaaja, "Portaali", OsuuPortaaliin);
52
53
54        Gravity = new Vector(0, -700);
55        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu vasemmalle", pelaaja, -200.0);
56        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu oikealle", pelaaja, 200.0);
57        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppaa", pelaaja);
58        Keyboard.Listen(Key.Up, ButtonState.Pressed, AmmuAseella, "Ammu", pelaaja);
59
60        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
61        Keyboard.Listen(Key.E, ButtonState.Pressed, Pause, "Pysäyttää pelin");
62    }
63    void LuoKentta(string kenttaTiedostonNimi)
64    {
65        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kenttaTiedostonNimi);
66        ruudut.SetTileMethod(Color.BloodRed, LuoPelaaja);
67        ruudut.SetTileMethod(Color.Black, LuoRuoho);
68        ruudut.SetTileMethod(Color.DarkGray, LuoMaa);
69        ruudut.SetTileMethod(Color.Azure, MaanAlainen1);
70        ruudut.SetTileMethod(Color.Rose, Pilvet);
71        ruudut.SetTileMethod(Color.Cyan, Doorali);
72        ruudut.SetTileMethod(Color.DarkCyan, Doorugali);
73        ruudut.SetTileMethod(Color.Orange, Coins);
74        ruudut.SetTileMethod(Color.HanPurple, Portal);
75        ruudut.SetTileMethod(Color.Red, Border);
76        ruudut.Execute();
77    }
78    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
79    {
80        pelaaja = new PlatformCharacter(10, 10);
81        pelaaja.Shape = Shape.Circle;
82        pelaaja.Color = Color.BloodRed;
83        pelaaja.CollisionIgnoreGroup = 2;
84        Add(pelaaja, 2);
85        pelaaja.Restitution = 0;
86        pelaaja.Weapon = new LaserGun(0.0, 0.0);
87        //Ammusten määrä aluksi:
88        pelaaja.Weapon.Ammo.Value = 1000000;
89
90        //Mitä tapahtuu kun ammus osuu johonkin?
91        pelaaja.Weapon.ProjectileCollision = AmmusOsui;
92        pelaaja.Weapon.FireRate = 5.0;
93        //pelaaja.Weapon.AttackSound = aseenAani;
94
95
96    }
97    void Border(Vector paikka, double leveys, double korkeus)
98    {
99        PhysicsObject border = PhysicsObject.CreateStaticObject(leveys, korkeus);
100        border.Position = paikka;
101        border.Image = borderk;
102        border.CollisionIgnoreGroup = 1;
103        Add(border);
104        border.Restitution = 0;
105    }
106    void LuoRuoho(Vector paikka, double leveys, double korkeus)
107    {
108        PhysicsObject ruoho = PhysicsObject.CreateStaticObject(leveys, korkeus);
109        ruoho.Position = paikka;
110        ruoho.Image = ruohokuva;
111        ruoho.CollisionIgnoreGroup = 1;
112        Add(ruoho);
113        ruoho.Restitution = 0;
114        ruoho.Tag = "Maa";
115
116    }
117    void LuoMaa(Vector paikka, double leveys, double korkeus)
118    {
119        PhysicsObject maa = PhysicsObject.CreateStaticObject(leveys, korkeus);
120        maa.Position = paikka;
121        maa.Image = multa;
122        maa.CollisionIgnoreGroup = 1;
123        Add(maa);
124        maa.Restitution = 0;
125        maa.Tag = "Maa";
126
127    }
128    void MaanAlainen1(Vector paikka, double leveys, double korkeus)
129    {
130        PhysicsObject ma = PhysicsObject.CreateStaticObject(leveys, korkeus);
131        ma.Position = paikka;
132        ma.Image = multat;
133        ma.CollisionIgnoreGroup = 2;
134        Add(ma, -3);
135
136    }
137
138    void Pilvet(Vector paikka, double leveys, double korkeus)
139    {
140        PhysicsObject pilve = PhysicsObject.CreateStaticObject(leveys, korkeus);
141        pilve.Position = paikka;
142        pilve.Image = pilvi;
143        pilve.CollisionIgnoreGroup = 1;
144        Add(pilve);
145        pilve.Restitution = 0;
146        pilve.Tag = "Maa";
147    }
148
149    void LiikutaPelaajaa(PlatformCharacter pelaaja, double nopeus)
150    {
151        pelaaja.Walk(nopeus);
152
153    }
154
155    void Hyppaa(PlatformCharacter pelaaja)
156    {
157        if (Laskuri < 5)
158        { pelaaja.Jump(400); }
159        else {
160            if (Hyppy < 3) { pelaaja.ForceJump(500); Hyppy++; }
161            else { }
162        }
163    }
164    void Doorugali(Vector paikka, double leveys, double korkeus)
165    {
166        PhysicsObject doorug = PhysicsObject.CreateStaticObject(leveys, korkeus);
167        doorug.Position = paikka;
168        doorug.Image = doorugk;
169        doorug.CollisionIgnoreGroup = 2;
170        Add(doorug, -1);
171        doorug.Tag = "Ovi" ;
172
173    }
174    void Doorali(Vector paikka, double leveys, double korkeus)
175    {
176        PhysicsObject door = PhysicsObject.CreateStaticObject(leveys, korkeus);
177        door.Position = paikka;
178        door.Image = doork;
179        door.CollisionIgnoreGroup = 2;
180        Add(door, -1);
181        door.Tag = "Ovi";
182
183    }
184    void Coins(Vector paikka, double leveys, double korkeus)
185    {
186        PhysicsObject Coin = PhysicsObject.CreateStaticObject(leveys, korkeus);
187        Coin.Position = paikka;
188        Coin.Image = coin;
189        Coin.CollisionIgnoreGroup = 1;
190        Coin.Tag = "Kolikko";
191        Add(Coin, -1);
192    }
193    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
194    {
195        ammus.Destroy();
196    }
197    void AmmuAseella(PlatformCharacter pelaaja)
198    {
199        PhysicsObject ammus = pelaaja.Weapon.Shoot();
200
201        if (ammus != null)
202        {
203            //ammus.Size *= 3;
204            //ammus.Image = ...
205            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
206        }
207    }
208    void SaaRahaa(PhysicsObject Pelaaja, PhysicsObject Coin)
209    {
210        Laskuri++;
211        Coin.Destroy();
212    }
213    void Portal(Vector paikka, double leveys, double korkeus)
214    {
215        PhysicsObject portal = PhysicsObject.CreateStaticObject(leveys, korkeus);
216        portal.Position = paikka;
217        portal.Image = portalk;
218        portal.CollisionIgnoreGroup = 1;
219        portal.Tag = "Portaali";
220        Add(portal, 3);
221
222
223    }
224    void KaikkiKeratty()
225    {
226        MessageDisplay.Add("Jee.");
227
228    }
229    void LisaaHyppyja(PhysicsObject Pelaaja, PhysicsObject Maa)
230    {
231        if(Hyppy < 3)
232        { }
233        else
234        { Hyppy = 0; }
235    }
236
237    void OsuuPortaaliin(PhysicsObject Pelaaja, PhysicsObject Portaali)
238    {
239        kenttaNro++;
240        SeuraavaKentta();
241    }
242}
243
244
Note: See TracBrowser for help on using the repository browser.