source: 2013/30/AleksiK/Hazy Maze Game/Hazy Maze Game/Hazy Maze Game/Hazy_Maze_Game.cs @ 4579

Revision 4579, 5.9 KB checked in by alraniko, 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 Hazy_Maze_Game : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    PhysicsObject kolikko;
13    //PhysicsObject kolmeVihu;
14
15    Vector nopeusYlos = new Vector(0, 300);
16    Vector nopeusAlas = new Vector(0, -300);
17    Vector nopeusOikea = new Vector(300, 0);
18    Vector nopeusVasen = new Vector(-300, 0);
19
20    //X = StandardiPala
21    //P = Pelaaja
22    //C = Kolikko
23    //1 = 3 oikealle liikkuva vihollinen
24
25    static String[] rivit = {
26                "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
27                "X                            X",
28                "X                            X",
29                "X                            X",
30                "X                            X",
31                "X                            X",
32                "X                            X",
33                "X          CP X              X",
34                "X                            X",
35                "X                            X",
36                "X                            X",
37                "X                            X",
38                "X              1             X",
39                "X                            X",
40                "X                            X",
41                "X                            X",
42                "X                            X",
43                "X                            X",
44                "X                            X",
45                "X                            X",
46                "X                            X",
47                "X                            X",
48                "X                            X",
49                "X                            X",
50                "X                            X",
51                "X                            X",
52                "X                            X",
53                "X                            X",
54                "X                            X",
55                "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
56                };
57
58   
59    static int ruudunLeveys = 1000 / rivit[0].Length;
60    static int ruudunKorkeus = 1000 / rivit.Length;
61
62    public override void Begin()
63    {
64        // TODO: Kirjoita ohjelmakoodisi tähän
65        //PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
66
67        ruudunLeveys = (int)(Screen.Height / rivit[0].Length);
68        ruudunKorkeus = (int)(Screen.Height / rivit.Length);
69
70        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
71
72        Level.BackgroundColor = Color.Black;
73       
74        TileMap tiles = TileMap.FromStringArray(rivit);
75        tiles.SetTileMethod('X', LuoStandardiPala);
76        tiles.SetTileMethod('P', LuoPelaaja);
77        tiles.SetTileMethod('C', LuoKolikko);
78        tiles.SetTileMethod('1', LuoKolmeOikVihu);
79        tiles.Execute(ruudunLeveys, ruudunKorkeus);
80       
81        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusYlos);
82        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
83        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusAlas);
84        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
85
86        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusOikea);
87        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
88        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusVasen);
89        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
90    }
91
92    public void LuoStandardiPala(Vector paikka, double ruudunLeveys, double ruudunKorkeus)
93    {
94        PhysicsObject standardiPala = PhysicsObject.CreateStaticObject(ruudunLeveys, ruudunKorkeus);
95        standardiPala.Color = Color.DarkBlue;
96        standardiPala.Position = paikka;
97        standardiPala.Restitution = 0.0;
98        Add(standardiPala);
99    }
100
101    public void LuoPelaaja(Vector paikka, double ruudunLeveys, double ruudunKorkeus)
102    {
103        pelaaja = new PhysicsObject(19, 19);
104        pelaaja.Color = Color.White;
105        pelaaja.Shape = Shape.Circle;
106        pelaaja.Position = paikka;
107        pelaaja.Tag = "pelaaja";
108        pelaaja.Restitution = 0.0;
109        Add(pelaaja);
110    }
111
112    public void LuoKolikko(Vector paikka, double ruudunLeveys, double ruudunKorkeus)
113    {
114        kolikko = PhysicsObject.CreateStaticObject(10, 10);
115        kolikko.Color = Color.Yellow;
116        kolikko.Shape = Shape.Circle;
117        kolikko.Position = paikka;
118        Add(kolikko);
119        AddCollisionHandler(kolikko, "pelaaja", KerasitKolikon);
120    }
121
122
123
124    public void LuoKolmeOikVihu(Vector paikka, double ruudunLeveys, double ruudunKorkeus)
125    {
126        PhysicsObject kolmeVihu = new PhysicsObject(30, 30);
127        kolmeVihu.Color = Color.Red;
128        kolmeVihu.Shape = Shape.Circle;
129        //kolmeVihu.Position = paikka;
130        Add(kolmeVihu);
131        AddCollisionHandler(kolmeVihu, "pelaaja", Kuolit);
132       
133        List<Vector> polku = new List<Vector>();
134        polku.Add(new Vector(paikka.X - 100, paikka.Y));
135        polku.Add(new Vector(paikka.X + 100, paikka.Y));
136       
137        PathFollowerBrain pfb = new PathFollowerBrain();
138        pfb.Path = polku;
139        kolmeVihu.Brain = pfb;
140        pfb.Active = true;
141        pfb.Loop = true;
142        pfb.Speed = 100;
143    }
144
145   
146    void KerasitKolikon(PhysicsObject kolikko, PhysicsObject pelaaja)
147    {
148        kolikko.Destroy();
149    }
150
151    void Kuolit(PhysicsObject kolmeVihu, PhysicsObject pelaaja)
152    {
153        pelaaja.Destroy();
154    }
155
156    void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus)
157    {
158        pelaaja.Velocity = nopeus;
159    }
160}
Note: See TracBrowser for help on using the repository browser.