source: 2017/24/LeeviE/Peli/Jump/Jump/Jump/Jump.cs @ 10334

Revision 8785, 8.1 KB checked in by npo17_23, 2 years ago (diff)

Vihut saatu liikkeelle kaikki valmista!

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Jump : PhysicsGame
10{
11    Image pelaajankuva = LoadImage("Tyyppi peliin cropattu");
12    Image platformi = LoadImage("Plat");
13     double nopeusOikea = 600.0;
14    double nopeusVasen = -600.0;
15    double hyppy = 1500.0;
16   
17
18    PlatformCharacter pelaaja;
19
20    Image groundimage = LoadImage("Laatta4");
21    Image tausta = LoadImage("bg2");
22    Image taahti = LoadImage("tääthi");
23    Image vihu1 = LoadImage("Vihu");
24    int kenttaNro = 1;
25   
26   
27
28    public override void Begin()
29    {
30        SeuraavaKentta();
31       
32
33
34        //Luolaatta(0.0, -100.0);
35        //Luolaatta(100.0, -200.0);
36
37        //Level.Background.Image = tausta;
38        //Level.Background.ScaleToLevelFull = tausta;
39
40
41        //PhysicsObject randomOlio = new PhysicsObject(20.0, 20.0);
42        //Add(randomOlio);
43        //RandomMoverBrain vihollinen = new RandomMoverBrain(200);
44        //randomOlio.Brain = vihollinen;
45        //vihollinen.ChangeMovementSeconds = 3;
46        //vihollinen.WanderRadius = 200;
47        //vihollinen.WanderPosition = new Vector(200, 300);
48
49
50
51     
52       
53
54    }
55
56    void LuoMaali(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject maali = new PhysicsObject(100.0, 100.0);
59       
60        maali.Position = paikka;
61        maali.Tag = "maali";
62
63        Add(maali);
64           
65    }
66   void LuoVihollinen(Vector paikka, double leveys, double korkeus)
67    {
68        PhysicsObject vihollinen = new PhysicsObject(84.0, 120.0);
69        vihollinen.Image = vihu1;
70       
71        vihollinen.CanRotate = false;
72        SmoothTextures = false;
73        vihollinen.Position = paikka;
74       
75        vihollinen.Tag = "vihollinen";
76        paikka.Y = paikka.Y + 10;
77        List<Vector> polku = new List<Vector>();
78        polku.Add((paikka + new Vector(-50, 0)));
79        polku.Add(paikka + new Vector(100, 0));
80      //  polku.Add(paikka + new Vector(250, 0));
81        PathFollowerBrain polkuAivot = new PathFollowerBrain();
82        polkuAivot.Path = polku;
83        polkuAivot.Loop = true;
84        polkuAivot.Speed = 100;
85        polkuAivot.TurnWhileMoving = false;
86       
87        vihollinen.IgnoresGravity = true;
88
89        vihollinen.Brain = polkuAivot;
90        Add(vihollinen);
91
92    }
93   
94
95    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
96    {
97        pelaaja = new PlatformCharacter(50.0, 50.0);
98        pelaaja.Image = pelaajankuva;
99        SmoothTextures = false;
100        pelaaja.Position = paikka;
101        AddCollisionHandler(pelaaja, "tahti", TormaaTahteen);
102        AddCollisionHandler(pelaaja, "vihollinen", TormaaViholliseen);
103        AddCollisionHandler(pelaaja, "maali", TormasiMaaliin);
104       // pelaaja.IgnoresGravity = false;
105        //pelaaja.Weapon = new AssaultRifle(30, 10);
106        //pelaaja.Weapon.Ammo.Value = 10000;
107        //pelaaja.Weapon.ProjectileCollision = AmmusOsui;
108        //pelaaja.Add(pelaaja.Weapon);
109
110       
111       
112       
113        Add(pelaaja);
114
115    }
116    void SeuraavaKentta()
117    {
118        ClearAll();
119
120        if (kenttaNro == 1) LuoKentta("kentta1");
121        else if (kenttaNro == 2) LuoKentta("kentta2");
122        else if (kenttaNro > 2) Exit();
123
124        GameObject taustakuva = new GameObject(9300.0, 2000.0);
125        taustakuva.Image = tausta;
126        Add(taustakuva, -3);
127        Layers[-3].RelativeTransition = new Vector(0.5, 0.5);
128        taustakuva.Y = 200.0;
129
130
131
132
133
134       
135        Asetaohjaimet();
136
137
138
139        Gravity = new Vector(0.0, -2200.0);
140
141        Camera.Follow(pelaaja);
142
143
144
145
146
147    }
148   
149    void TormaaTahteen(PhysicsObject pelaaja, PhysicsObject tahti)
150    {
151        tahti.Destroy();
152        MessageDisplay.Add("Keräsit tähden!");
153    }
154
155    void TormaaViholliseen(PhysicsObject pelaaja, PhysicsObject vihollinen)
156    {
157        pelaaja.Destroy();
158        MessageDisplay.Add("Kuolit.");
159    }
160
161    void Asetaohjaimet()
162    {
163        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja: Liiku Vasemmalle", pelaaja, nopeusVasen);
164       // Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
165        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Pelaaja: Liiku Oikealle", pelaaja, nopeusOikea);
166       // Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
167        Keyboard.Listen(Key.Space, ButtonState.Down, Hyppy, "Pelaaja: Hyppää", pelaaja, hyppy);
168
169       // Keyboard.Listen(Key.W, ButtonState.Pressed, Kranaatti, "Pelaaja heittää kranun", pelaaja, heitto);
170
171
172        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta Peli");
173    }
174
175    void LuoKentta(string kentta)
176    {
177        //PhysicsObject plat1 = new PhysicsObject(100.0, 20.0);
178        //Add(plat1);
179        //plat1.Image = platformi;
180        //plat1.MakeStatic();
181
182        TileMap ruudut = TileMap.FromLevelAsset(kentta);
183        ruudut.SetTileMethod('#', LuoPalikka);
184        ruudut.SetTileMethod('*', LuoTahti);
185        ruudut.SetTileMethod('!', LuoPelaaja);
186        ruudut.SetTileMethod('v', LuoVihollinen);
187        ruudut.SetTileMethod('M', LuoMaali);
188        ruudut.Execute( 100.0, 100.0);
189
190
191       
192
193    }
194    void TormasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
195    {
196        kenttaNro++;
197        SeuraavaKentta();
198    }
199
200
201    void LuoPalikka(Vector paikka, double leveys, double korkeus)
202    {
203        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
204        taso.Position = paikka;
205        taso.Shape = Shape.Rectangle;
206        taso.Color = Color.Gray;
207        taso.CollisionIgnoreGroup = 1;
208        taso.Image = groundimage;
209   
210        Add(taso);
211
212
213    }
214    void LuoTahti(Vector paikka, double leveys, double korkeus)
215    {
216        PhysicsObject tahti = PhysicsObject.CreateStaticObject(korkeus, leveys);
217        tahti.IgnoresCollisionResponse = true;
218        tahti.Position = paikka;
219        //tahti.Shape = Shape.Rectangle;
220        //tahti.Color = Color.Yellow;
221        tahti.Image = taahti;
222        tahti.Tag = "tahti";
223       
224        Add(tahti); 
225     
226
227
228
229    }
230    void AsetaNopeus(PlatformCharacter pelaaja, double nopeus)
231    {
232        //pelaaja.Velocity = nopeus;
233        pelaaja.Walk(nopeus);
234
235
236
237
238    }
239    void Hyppy(PlatformCharacter pelaaja, double hyppy)
240    {
241        pelaaja.Jump(hyppy);
242
243    }
244
245
246    //void Luolaatta(double x, double y)
247    //{
248    //    PhysicsObject laatta1 = new PhysicsObject(1000.0, 10.0);
249    //    laatta1.MakeStatic();
250    //    laatta1.Y = y;
251    //    laatta1.X = x;
252    //    Add(laatta1);
253    //    laatta1.Color = Color.Gray;
254
255    //PhysicsObject laatta2 = new PhysicsObject(10.0, 1000.0);
256    //laatta2.MakeStatic();
257    //Add(laatta2);
258    //laatta2.X = 500;
259    //laatta2.Y = 400;
260    //laatta2.Color = Color.Gray;
261
262    //PhysicsObject laatta3 = new PhysicsObject(10.0, 1000.0);
263    //laatta3.MakeStatic();
264    //Add(laatta3);
265    //laatta3.X = -500;
266    //laatta3.Y = 400;
267    //laatta3.Color = Color.Gray;
268
269    //void Ase()
270    //{
271    //    AssaultRifle ase = new AssaultRifle(20, 5);
272    //    ase.InfiniteAmmo = true;
273    //    ase.Power.Value = 2000;
274    //    ase.Power.DefaultValue = 2000;
275    //    ase.FireRate = 2.0;
276    //    ase.AmmoIgnoresGravity = false;
277    //    ase.AmmoIgnoresExplosions = true;
278    //    ase.CanHitOwner = false;
279    //    ase.Image = null;
280    //    ase.AttackSound = null;
281    //    ase.X = 0.0;
282    //    ase.Y = 0.0;
283
284    //}
285
286    //void HeitaKranaatti(PlatformCharacter pelaaja)
287    //{
288    //    Grenade kranu = new Grenade(4.0);
289    //    pelaaja.Throw(kranu, Angle.FromDegrees(30), 10000);
290    //    kranu.Explosion.ShockwaveReachesObject += KranaattiOsui;
291
292    //}
293
294    //void KranaattiOsui(IPhysicsObject rajahdyksenKohde, Vector v)
295    //{
296    //    rajahdyksenKohde.Destroy();
297    //    MessageDisplay.Add("Listit Vihollisen!");
298
299    // }
300}
301
302
303
304
Note: See TracBrowser for help on using the repository browser.