source: 2016/24/WilkoT/Shurigenshootter/Shurigenshootter/Shurigenshootter/Shurigenshootter.cs @ 7444

Revision 7444, 4.6 KB checked in by karkaite, 3 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 Shurigenshootter : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15
16
17
18
19
20
21    PlatformCharacter pelaaja1;
22
23    Image pelaajanKuva = LoadImage("norsu");
24    Image tahtiKuva = LoadImage("tahti");
25
26    SoundEffect maaliAani = LoadSoundEffect("maali");
27
28    public override void Begin()
29    {
30
31
32        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
33"Aloita peli", "Lopeta");
34        Add(alkuValikko);
35
36        alkuValikko.AddItemHandler(0, AloitaPeli);
37        alkuValikko.AddItemHandler(1, Exit);
38
39
40
41
42
43    }
44
45    void LuoKentta()
46    {
47        TileMap kentta = TileMap.FromLevelAsset("kentta1");
48        kentta.SetTileMethod('#', LisaaTaso);
49        kentta.SetTileMethod('*', LisaaTahti);
50        kentta.SetTileMethod('N', LisaaPelaaja);
51        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
52        Level.CreateBorders();
53        Level.Background.CreateGradient(Color.White, Color.Aqua);
54    }
55
56    void LisaaTaso(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
59        taso.Position = paikka;
60        taso.Color = Color.Green;
61        Add(taso);
62    }
63
64    void LisaaTahti(Vector paikka, double leveys, double korkeus)
65    {
66        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
67        tahti.IgnoresCollisionResponse = true;
68        tahti.Position = paikka;
69        tahti.Image = tahtiKuva;
70        tahti.Tag = "tahti";
71        Add(tahti);
72    }
73
74    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
75    {
76        pelaaja1 = new PlatformCharacter(leveys, korkeus);
77        pelaaja1.Position = paikka;
78        pelaaja1.Mass = 4.0;
79        pelaaja1.Shape = Shape.Hexagon;
80        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
81        Add(pelaaja1);
82
83        Image Tahtikuva = LoadImage("EbinTahti");
84        pelaaja1.Image = Tahtikuva;
85
86    }
87
88
89    void LisaaNappaimet()
90    {
91        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
92        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
93
94        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
95        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
96        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
97
98        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
99
100        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
101        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
102        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
103
104        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
105    }
106
107    void Liikuta(PlatformCharacter hahmo, double nopeus)
108    {
109        hahmo.Walk(nopeus);
110    }
111
112    void Hyppaa(PlatformCharacter hahmo, double nopeus)
113    {
114        hahmo.Jump(nopeus);
115    }
116
117    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
118    {
119        maaliAani.Play();
120        MessageDisplay.Add("JEE TÄHTIÄÄÄ");
121        tahti.Destroy();
122
123        Explosion rajahdys = new Explosion(200);
124        rajahdys.Position = tahti.Position;
125        Add(rajahdys);
126        rajahdys.Speed = 550.0;
127        rajahdys.Force = 150;
128
129        {
130
131            PlatformCharacter rotta = new PlatformCharacter(40.0, 40.0);
132            rotta.Tag = "rotta";
133            Add(rotta);
134
135            PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
136            tasoAivot.Speed = 50;
137            rotta.Shape = Shape.Circle;
138            AddCollisionHandler(hahmo, "rotta", tormaaRottaan);
139            rotta.Brain = tasoAivot;
140
141
142
143
144        }
145 
146
147
148    }
149    void tormaaRottaan(PhysicsObject hahmo, PhysicsObject rotta) {
150
151        hahmo.Destroy();
152    }
153    void AloitaPeli()
154    {
155        Gravity = new Vector(0, -1000);
156
157        LuoKentta();
158        LisaaNappaimet();
159
160        Camera.Follow(pelaaja1);
161        Camera.ZoomFactor = 1.2;
162        Camera.StayInLevel = true;
163
164
165
166
167    }
168   
169   
170   
171    }
172   
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
Note: See TracBrowser for help on using the repository browser.