source: 2018/26/HelmerN/Labyrinttipeli/Labyrinth/Labyrinth/Labyrinth.cs @ 10334

Revision 9800, 5.3 KB checked in by niemihe, 15 months ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Widgets;
7
8public class Labyrinth : PhysicsGame
9{
10    PhysicsObject nelio;
11    Image olionKuva = LoadImage("Untitled");
12    Image background = LoadImage("background");
13    Image alienKuva = LoadImage("alien");
14    Image LandMine = LoadImage("Landmine");
15
16
17    int KentanNumero = 1;
18
19    public override void Begin()
20    {
21        // Kirjoita ohjelmakoodisi tähän
22        SeuraavaKentta();
23
24        MediaPlayer.Play("space");
25        MediaPlayer.IsRepeating = true;
26
27    }
28
29    void LuoTeleportti(Vector paikka, double leveys, double korkeus, Color vari)
30    {
31        PhysicsObject teleportti = PhysicsObject.CreateStaticObject(leveys, korkeus);
32        teleportti.Position = paikka;
33        teleportti.Shape = Shape.Rectangle;
34        teleportti.Color = vari;
35        Add(teleportti);
36        teleportti.Tag = "teleportti";
37    }
38
39    void SeuraavaKentta()
40    {
41        ClearAll();
42        Add(MessageDisplay);
43        KentanNumero++;
44
45        nelio = new PhysicsObject(50, 50);
46        nelio.Shape = Shape.Rectangle;
47        nelio.Color = Color.LightYellow;
48        Add(nelio);
49        Level.Background.Color = Color.Gray;
50        nelio.X = 160;
51        nelio.Y = -300;
52        nelio.Image = olionKuva;
53        nelio.CanRotate = false;
54
55        TileMap kentta = TileMap.FromLevelAsset("kentta" + KentanNumero);
56        kentta.SetTileMethod('S', LuoPalikka, Color.DarkGray);
57        kentta.SetTileMethod('T', LuoTeleportti, Color.White);
58        kentta.SetTileMethod('F', LuoPalikka, Color.OrangeRed);
59        kentta.SetTileMethod('A', LuoAlien);
60        kentta.SetTileMethod('W', LuoVoitto, Color.Gold);
61        kentta.SetTileMethod('L', LuoMiina);
62        kentta.Execute();
63
64        Surfaces reunat = Level.CreateBorders();
65        reunat.Top.Color = Color.DarkGray;
66        reunat.Left.Color = Color.DarkGray;
67        reunat.Right.Color = Color.DarkGray;
68        reunat.Bottom.Color = Color.DarkGray;
69        Camera.ZoomToLevel(100.0);
70
71        AddCollisionHandler(nelio, "teleportti", TeleporttiToiminta);
72        AddCollisionHandler(nelio, "alien", AlienToiminta);
73        AddCollisionHandler(nelio, "voitto", VoittoToiminta);
74        AddCollisionHandler(nelio, "LandMine", MiinanToiminta);
75
76        Liikkeet();
77        Esteet();
78
79        Level.Background.Image = background;
80        Level.Background.FitToLevel();
81
82        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
83        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Nayta ohjeet");
84    }
85
86    void LuoVoitto(Vector paikka, double leveys, double korkeus, Color vari)
87    {
88        PhysicsObject voitto = PhysicsObject.CreateStaticObject(leveys, korkeus);
89        voitto.Position = paikka;
90        voitto.Shape = Shape.Rectangle;
91        voitto.Color = Color.Gold;
92        voitto.Tag = "voitto";
93        Add(voitto);
94    }
95
96    void LuoMiina(Vector paikka, double leveys, double korkeus)
97    {
98        PhysicsObject LandMine = PhysicsObject.CreateStaticObject(leveys, korkeus);
99        LandMine.Position = paikka;
100        LandMine.Shape = Shape.Circle;
101        LandMine.Image = LoadImage("Landmine");
102        LandMine.Tag = "LandMine";
103        Add(LandMine);
104    }
105    void MiinanToiminta(PhysicsObject nelio, PhysicsObject LandMine)
106    {
107        Explosion rajahdys = new Explosion(50);
108        rajahdys.Position = LandMine.Position;
109        Add(rajahdys);
110    }
111
112    void VoittoToiminta(PhysicsObject nelio, PhysicsObject voitto)
113    {
114        Label tekstikentta = new Label(500.0, 200.0, "You Escaped The Space Station, You Win!");
115        tekstikentta.X = 0;
116        tekstikentta.Y = 0;
117        Add(tekstikentta);
118    }
119    void TeleporttiToiminta(PhysicsObject nelio, PhysicsObject teleportti)
120    {
121        SeuraavaKentta();
122        MessageDisplay.Add("Teleportation Successful...");
123    }
124
125 
126    void Liikkeet()
127    {
128        Keyboard.ListenArrows(ButtonState.Down, liikutaPelaajaa, "Liikuta Pelaajaa");
129
130    }
131    void liikutaPelaajaa(Vector suunta)
132    {
133        nelio.Hit(suunta * 10);
134    }
135    void Esteet()
136    {
137        PhysicsObject este1 = PhysicsObject.CreateStaticObject(50, 50);
138        este1.Color = Color.DarkGray;       
139   
140    }
141
142   
143
144    void LuoPalikka(Vector paikka, double leveys, double korkeus, Color vari)
145    {
146        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
147        palikka.Position = paikka;
148        palikka.Shape = Shape.Rectangle;
149        palikka.Color = Color.DarkGray;
150        palikka.Tag = "palikka";
151        Add(palikka);
152    }
153
154    void LuoAlien(Vector paikka, double leveys, double korkeus)
155    {
156        PhysicsObject alien = new PhysicsObject(leveys, korkeus);
157        alien.Position = paikka;
158        alien.Shape = Shape.FromImage(alienKuva);
159        alien.Image = alienKuva;
160        alien.Tag = "alien";
161        Add(alien);
162
163        FollowerBrain brain = new FollowerBrain(nelio);
164        brain.Speed = 70;
165        alien.Brain = brain;
166    }
167    void AlienToiminta(PhysicsObject nelio, PhysicsObject alien)
168    {
169        MessageDisplay.Add("You Died...");
170        nelio.Destroy();
171    }
172
173
174
175   
176
177}
Note: See TracBrowser for help on using the repository browser.