source: 2015/30/JoonasA/MazeRun/MazeRun/MazeRun/MazeRun.cs @ 7005

Revision 7005, 6.2 KB checked in by jomiasp, 6 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class MazeRun : PhysicsGame
10{
11
12    const double nopeus = 250;
13    const double hyppyNopeus = 700;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17    Image lintuKuva = LoadImage("bird2");
18    Image pelaajanKuva = LoadImage("Boy");
19    Image tahtiKuva = LoadImage("Coin");
20    Image lintu2Kuva = LoadImage("Bird");
21    Image HouseKuva = LoadImage("House");
22    private Image[] boykavely = LoadImages("boy", "boy2", "bird2");
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25
26    public override void Begin()
27    {
28        Gravity = new Vector(0.0, -800.0);
29
30        LuoKentta();
31        LisaaNappaimet();
32        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
33  "Aloita peli", "Parhaat pisteet", "Lopeta");
34        Add(alkuValikko);
35        alkuValikko.Color = Color.Red;
36        alkuValikko.AddItemHandler(2, Exit);
37        alkuValikko.DefaultCancel = 3;
38        alkuValikko.DefaultCancel = -1;
39        Label kohta1 = new Label("Aloita uusi peli");
40        Mouse.IsCursorVisible = true;
41       
42 
43
44        Camera.Follow(pelaaja1);
45        Camera.ZoomFactor = 1.2;
46        Camera.StayInLevel = true;
47    }
48
49    void LuoKentta()
50    {
51       
52        TileMap kentta = TileMap.FromLevelAsset("kentta1");
53        kentta.SetTileMethod('D', lisaalintu2);
54        kentta.SetTileMethod('B', lisaalintu);
55        kentta.SetTileMethod('#', LisaaTaso);
56        kentta.SetTileMethod('*', LisaaCoin);
57        kentta.SetTileMethod('H', LisaaHouse);
58        kentta.SetTileMethod('N', LisaaPelaaja);
59        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
60        Level.CreateBorders();
61        Level.Background.CreateStars(5500);
62       
63
64
65    }
66
67
68    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
69    {
70        pelaaja1 = new PlatformCharacter(10, 10);
71        pelaaja1.Position = paikka;
72
73        AddCollisionHandler(pelaaja1, "Coin", Tormaalintu);
74        Add(pelaaja1);
75    }
76
77    void LuoTaso(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
80        taso.Position = paikka;
81
82        taso.CollisionIgnoreGroup = 1;
83        Add(taso);
84    }
85
86    void LisaaTaso(Vector paikka, double leveys, double korkeus)
87    {
88        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
89        taso.Position = paikka;
90        taso.Color = Color.Aquamarine;
91        Add(taso);
92
93    }
94
95    void LisaaCoin(Vector paikka, double leveys, double korkeus)
96    {
97        PhysicsObject Coin = PhysicsObject.CreateStaticObject(leveys, korkeus);
98        Coin.IgnoresCollisionResponse = true;
99        Coin.Position = paikka;
100        Coin.Image = tahtiKuva;
101        Coin.Tag = "Coin";
102        Add(Coin);
103    }
104    void LisaaBird(Vector paikka, double leveys, double korkeus)
105    {
106        PhysicsObject Bird = PhysicsObject.CreateStaticObject(leveys, korkeus);
107        Bird.IgnoresCollisionResponse = true;
108        Bird.Position = paikka;
109        Bird.Image = lintu2Kuva;
110        Bird.Tag = "Bird";
111        Add(Bird);
112    }
113
114    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
115    {
116        pelaaja1 = new PlatformCharacter(50.0, 30.0);
117        pelaaja1.Position = paikka;
118        pelaaja1.Mass = 1.0;
119        pelaaja1.Image = pelaajanKuva;
120        AddCollisionHandler(pelaaja1, "Coin", Tormaalintu);
121        pelaaja1.Animation = new Animation(boykavely);
122        pelaaja1.Animation.Start();
123        pelaaja1.Animation.FPS = 5;
124
125
126
127        Add(pelaaja1);
128    }
129    void LisaaNappaimet()
130    {
131        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
132        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
133
134        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
135        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
136        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
137
138        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
139
140        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
141        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
142        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
143
144 
145
146        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
147    }
148
149    void Liikuta(PlatformCharacter hahmo, double nopeus)
150    {
151        hahmo.Walk(nopeus);
152    }
153
154    void Hyppaa(PlatformCharacter hahmo, double nopeus)
155    {
156        hahmo.Jump(nopeus);
157    }
158
159
160    void Tormaalintu(PhysicsObject hahmo, PhysicsObject lintu)
161    {
162        maaliAani.Play();
163        MessageDisplay.Add("Keräsit kolikon!");
164        lintu.Destroy();
165    }
166    void lisaalintu(Vector paikka, double leveys, double korkeus)
167    {
168        PhysicsObject lintu = PhysicsObject.CreateStaticObject(leveys, korkeus);
169        lintu.IgnoresCollisionResponse = false;
170        lintu.Position = paikka;
171        lintu.Image = lintuKuva;
172        lintu.Tag = "lintu";
173        Add(lintu);
174    }
175    void lisaalintu2(Vector paikka, double leveys, double korkeus)
176    {
177        PhysicsObject lintu2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
178        lintu2.IgnoresCollisionResponse = false;
179        lintu2.Position = paikka;
180        lintu2.Image = lintu2Kuva;
181        lintu2.Tag = "lintu2";
182        Add(lintu2);
183    }
184    void LisaaHouse(Vector paikka, double leveys, double korkeus)
185    {
186        PhysicsObject House = PhysicsObject.CreateStaticObject(leveys, korkeus);
187        House.IgnoresCollisionResponse = true;
188        House = new PlatformCharacter(250.0, 260.0);
189        House.Position = paikka;
190        House.Image = HouseKuva;
191        House.Tag = "House";
192        Add(House);
193    }
194 
195}
196
197
198
Note: See TracBrowser for help on using the repository browser.