source: 2013/24/EemeliK/KillSlender/KillSlender/KillSlender/KillSlender.cs @ 4074

Revision 4074, 4.9 KB checked in by taeekotr, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class KillSlender : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    Image tyyppi = LoadImage("tyyppi");
13    int kenttaNro = 1;
14
15    Color[] kenttienTaustavarit = { Color.LightBlue, Color.LightBlue, Color.Black };
16
17    public override void Begin()
18    {
19        // TODO:
20
21
22        seuraavakentta();
23
24
25    }
26    void seuraavakentta()
27    {
28        ClearAll();
29
30        if (kenttaNro == 1) LuoKentta("kentta1");
31        else if (kenttaNro == 2) LuoKentta("kentta2");
32        else if (kenttaNro == 3) LuoKentta("kentta3");
33        else if (kenttaNro > 3) Exit();
34
35    }
36
37
38    void LuoPalikka(Vector paikka, double leveys, double korkeus)
39    {
40        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
41        palikka.Position = paikka;
42        palikka.Shape = Shape.Rectangle;
43        palikka.Color = Color.Gray;
44        Add(palikka);
45
46    }
47    void LuoTNT(Vector paikka, double leveys, double korkeus)
48    {
49        PhysicsObject tnt = PhysicsObject.CreateStaticObject(50, 150);
50        tnt.Position = paikka;
51        tnt.Shape = Shape.Rectangle;
52        tnt.Color = Color.Gray;
53        Add(tnt);
54        Image olionKuva = LoadImage("TNT");
55        tnt.Image = olionKuva;
56        AddCollisionHandler(tnt, CollisionHandler.ExplodeBoth(200, true));
57        AddCollisionHandler(tnt, "slender", VaihdaKentta);
58    }
59    void LiikutaPelaajaa(Vector vektori)
60    {
61        pelaaja.Push(vektori);
62    }
63    void LuoPelaaja(Vector paikka, double leveys, double korkeus, Image kuva)
64    {
65        pelaaja.Position = paikka;
66        pelaaja.Image = kuva;
67    }
68    void VaihdaKentta(PhysicsObject tormaaja, PhysicsObject kohde)
69    {
70        kenttaNro++;
71        seuraavakentta();
72        MessageDisplay.Add("Pääsit läpi");
73
74    }
75    void LuoKentta(String Kenttatiedosto)
76    {
77        ClearAll();
78        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
79        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
80        pelaaja = new PhysicsObject(50, 100);
81        pelaaja.Shape = Shape.Rectangle;
82        Add(pelaaja);
83        pelaaja.Destroyed += PelaajaKuoli;
84        pelaaja.Image = tyyppi;
85        Gravity = new Vector(0.0, -800.0);
86        TileMap ruudut = TileMap.FromLevelAsset(Kenttatiedosto);
87        ruudut.SetTileMethod('S', LuoSlender);
88        ruudut.SetTileMethod('1', LuoPelaaja, LoadImage("tyyppi"));
89        ruudut.SetTileMethod('2', LuoPelaaja, LoadImage("tyyppi2"));
90        ruudut.SetTileMethod('=', LuoPalikka);
91        ruudut.SetTileMethod('*', LuoTNT);
92        ruudut.SetTileMethod('E', LuoEyes);
93        ruudut.Execute(20, 20);
94        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
95        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
96        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
97        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
98        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
99        IsPaused = true;
100        Camera.Follow(pelaaja);
101        pelaaja.LifetimeLeft = TimeSpan.FromSeconds(60.0);
102        Level.BackgroundColor = kenttienTaustavarit[kenttaNro - 1];
103    }
104    void LuoSlender(Vector paikka, double leveys, double korkeus)
105    {
106        PhysicsObject slender = new PhysicsObject(50, 150);
107        slender.Shape = Shape.Rectangle;
108        slender.Tag = "slender";
109        Add(slender);
110        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja);
111        slender.Brain = seuraajanAivot;
112        seuraajanAivot.Speed = 258;
113        Image olionKuva = LoadImage("slender");
114        slender.Image = olionKuva;
115        AddCollisionHandler(pelaaja, slender, CollisionHandler.ExplodeObject(100, true));
116        slender.Position = paikka;
117
118    }
119    void PelaajaKuoli()
120    {
121        //Sama kenttä ladataan alusta jos kenttänumeroa ei kasvateta:
122        seuraavakentta();
123    }
124    void vaihdakentta(PhysicsObject tormaaja, PhysicsObject kohde)
125    {
126        kenttaNro++;
127        seuraavakentta();
128        MessageDisplay.Add("Pääsit läpi");
129    }
130    void LuoEyes(Vector paikka, double leveys, double korkeus)
131    {
132        PhysicsObject eyes = new PhysicsObject(150, 250);
133        eyes.Shape = Shape.Rectangle;
134        eyes.Tag = "eyes";
135        Add(eyes);
136        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja);
137        eyes.Brain = seuraajanAivot;
138        seuraajanAivot.Speed = 345;
139        Image olionKuva = LoadImage("eyes");
140        eyes.Image = olionKuva;
141        AddCollisionHandler(pelaaja, eyes, CollisionHandler.ExplodeObject(100, true));
142        eyes.Position = paikka;
143
144    }
145   
146}
147
148
149
150
151
152
153
154
155
156
Note: See TracBrowser for help on using the repository browser.