source: 2016/27/TomiR/OmaPeli/OmaPeli/OmaPeli/OmaPeli.cs @ 7968

Revision 7968, 7.2 KB checked in by tomamira, 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 OmaPeli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17
18    Animation KävelyAnimaatio;
19    Animation HahmoHyppy;
20    Animation TaloAnimaatio;
21
22    Image pelaajanKuva = LoadImage("Hahmo3");
23    Image tahtiKuva = LoadImage("tahti");
24    Image Haamunkuva = LoadImage("Haamu");
25    Image Piikkikuva = LoadImage("Piikki");
26    Image Ruohoblokinkuva = LoadImage("Ruohoblokki");
27
28    SoundEffect maaliAani = LoadSoundEffect("maali");
29   
30
31    public override void Begin()
32    {
33        ClearAll();
34        Begin2();
35        Begin3();
36
37
38    }
39    void Begin3()
40    {
41        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
42      "Aloita peli", "Parhaat Pisteet", "Lopeta");
43
44        alkuValikko.ItemSelected += PainettiinValikonNappia;
45        Add(alkuValikko);
46
47    }
48    void Begin2()
49    {
50        ClearAll();
51
52
53       
54
55        Gravity = new Vector(0, -1000);
56        HahmoHyppy = LoadAnimation("AnimaatioHyppy");
57        KävelyAnimaatio = LoadAnimation("Animaatio");
58        TaloAnimaatio = LoadAnimation("AnimaatioTalo");
59        LisaaVihollinen();
60        LisaaVihollinen();
61        LisaaVihollinen();
62        LisaaVihollinen();
63        LisaaVihollinen();
64        LisaaVihollinen();
65        LisaaVihollinen();
66        LisaaVihollinen();
67        LisaaVihollinen();
68
69        LuoKentta();
70        LisaaNappaimet();
71
72        Camera.Follow(pelaaja1);
73        Camera.ZoomFactor = 2;
74        Camera.StayInLevel = true;
75        IsFullScreen = true;
76    }
77    void PainettiinValikonNappia(int valinta)
78    {
79        switch (valinta)
80        {
81            case 0:
82                // AloitaPeli();
83                break;
84            case 1:
85                // ParhaatPisteet();
86                break;
87            case 2:
88                Exit();
89                break;
90        }
91    }
92    void LuoKentta()
93    {
94        TileMap kentta = TileMap.FromLevelAsset("kentta1");
95        kentta.SetTileMethod('#', LisaaTaso);
96        kentta.SetTileMethod('*', LisaaTahti);
97        kentta.SetTileMethod('N', LisaaPelaaja);
98        kentta.SetTileMethod('P', LisaaPiikki);
99        kentta.SetTileMethod('T', LisaaTalo);
100        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
101        Level.CreateBorders();
102        Level.Background.CreateGradient(Color.Blue, Color.DarkRed);
103    }
104
105    void LisaaTaso(Vector paikka, double leveys, double korkeus)
106    {
107        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
108        taso.Position = paikka;
109        taso.CollisionIgnoreGroup = 1;
110        // taso.Color = Color.Green;
111        taso.Image = Ruohoblokinkuva;
112        Add(taso);
113    }
114
115    void LisaaTahti(Vector paikka, double leveys, double korkeus)
116    {
117        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
118        tahti.IgnoresCollisionResponse = true;
119        tahti.CollisionIgnoreGroup = 1;
120        tahti.Position = paikka;
121        tahti.Image = tahtiKuva;
122        tahti.Tag = "tahti";
123        Add(tahti);
124
125        //Ruohoblokki.Image = Ruohoblokinkuva;
126    }
127
128    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
129    {
130        pelaaja1 = new PlatformCharacter(leveys, korkeus);
131        pelaaja1.Position = paikka;
132        pelaaja1.AnimIdle = new Animation(pelaajanKuva);
133        pelaaja1.CollisionIgnoreGroup = 3;
134        pelaaja1.Mass = 4.0;
135        pelaaja1.AnimWalk = KävelyAnimaatio;
136        pelaaja1.AnimJump = HahmoHyppy;
137        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
138        AddCollisionHandler(pelaaja1, "Piikki", TormaaPiikkiin);
139        AddCollisionHandler(pelaaja1, "Haamu", TormaaViholliseen);
140        Add(pelaaja1);
141    }
142
143    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
144    {
145        PhysicsObject Piikki = new PhysicsObject(30, 20);
146
147        Piikki.Tag = "Piikki";
148        Piikki.CollisionIgnoreGroup = 1;
149        Piikki.MakeStatic();
150        Piikki.Image = Piikkikuva;
151        Piikki.Position = paikka + new Vector(0, -korkeus * 0.3);
152        Add(Piikki);
153
154    }
155
156
157    void LisaaNappaimet()
158    {
159        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
160        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Begin3, "Pelin alkuvalikko");
161
162        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
163        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
164        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
165        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
166        Keyboard.Listen(Key.R, ButtonState.Pressed, Begin2, "Aloittaa Pelin Alusta");
167        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
168
169        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
170        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
171        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
172
173        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
174    }
175
176    void Liikuta(PlatformCharacter hahmo, double nopeus)
177    {
178        hahmo.Walk(nopeus);
179    }
180
181    void Hyppaa(PlatformCharacter hahmo, double nopeus)
182    {
183        hahmo.Jump(nopeus);
184    }
185
186    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
187    {
188        maaliAani.Play();
189        MessageDisplay.Add("Keräsit tähden!");
190        tahti.Destroy();
191    }
192
193    void TormaaPiikkiin(PhysicsObject hahmo, PhysicsObject Piikki)
194    {
195        pelaaja1.Destroy();
196        MessageDisplay.Add("Try Again!");
197        Begin2();
198       
199
200       
201    }
202    void TormaaViholliseen(PhysicsObject hahmo, PhysicsObject randomOlio)
203    {
204
205        pelaaja1.Destroy();
206        MessageDisplay.Add("Try Again!");
207        Begin2();
208
209
210
211    }
212
213   
214   
215    void LisaaTalo(Vector paikka, double leveys, double korkeus)
216    {
217       GameObject talo = new GameObject(leveys*5, korkeus*5);
218        talo.Position = paikka;
219       
220        talo.Animation = TaloAnimaatio;
221        talo.Animation.Start();
222        Add(talo, -1);
223
224
225
226
227    }
228
229
230    void LisaaVihollinen()
231    {
232        PhysicsObject Haamu = new PhysicsObject(50.0, 50.0);
233        Haamu.Tag = "Haamu";
234        Haamu.Image = Haamunkuva;
235        Add(Haamu);
236
237        //Tehdään uudet satunnaisaivot, jotka liikkuvat nopeudella...
238        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(600);
239        satunnaisAivot.Speed = 300;
240        //Ominaisuuksien muokkaaminen
241        satunnaisAivot.ChangeMovementSeconds = 3;
242        //satunnaisAivot.TurnWhileMoving = true;
243        Haamu.CollisionIgnoreGroup = 1;
244        Haamu.CanRotate = false;
245        //Aivot käyttöön oliolle
246        Haamu.Brain = satunnaisAivot;
247
248    }
249
250
251
252}
Note: See TracBrowser for help on using the repository browser.