source: 2015/26/RonjaT/Myohassa/Myohassa/Myohassa/Myohassa.cs @ 6474

Revision 6474, 8.6 KB checked in by rokatuov, 5 years ago (diff)

valmis peji :)

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Myohassa : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter pelaaja2;
17
18    Image pelaajanKuva = LoadImage("norsu");
19    Image tahtiKuva = LoadImage("tahti");
20    Image EmmaKuva = LoadImage("Emma");
21    Image JeremiKuva = LoadImage("Jeremi");
22    Image Haakimppukuva = LoadImage("Haakimppu");
23    Image Kakku = LoadImage("kakku");
24    Image LukaKuva = LoadImage("Luka");
25    Image etanaKuva = LoadImage("Etana");
26    Image kakkaKuva = LoadImage("kakka");
27    //Image onneaHääparille("onneaHääparille);
28
29    SoundEffect maaliAani = LoadSoundEffect("maali");
30
31    public override void Begin()
32    {
33
34        LisaaAlkuValikko();
35        //Level.Background.Image = onneaHääparille;
36    }
37
38    void AloitaPeli()
39    {
40        Gravity = new Vector(0, -1000);
41
42        LuoKentta();
43        LisaaNappaimet();
44
45
46        Camera.Follow(pelaaja1, pelaaja2);
47        Camera.ZoomFactor = 1.7;
48        Camera.StayInLevel = true;
49    }
50
51    void LuoKentta()
52    {
53        TileMap kentta = TileMap.FromLevelAsset("kentta1");
54        kentta.SetTileMethod('#', LisaaTaso);
55        kentta.SetTileMethod('E', LisaaPelaaja1, EmmaKuva);
56        kentta.SetTileMethod('J', LisaaPelaaja2, JeremiKuva);
57        kentta.SetTileMethod('H', LisaaHaakimppu);
58        kentta.SetTileMethod('K', LisaaKakku);
59        kentta.SetTileMethod('L', LisaaLuka);
60        kentta.SetTileMethod('&', LisaaEtana);
61        kentta.SetTileMethod('<', LisaaKakka);
62
63
64
65        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
66        Level.CreateBorders();
67        Level.Background.CreateGradient(Color.Red, Color.Black);
68    }
69
70    void LisaaTaso(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        taso.Position = paikka;
74        taso.Color = Color.Green;
75        Add(taso);
76    }
77
78
79
80    void LisaaHaakimppu(Vector paikka, double leveys, double korkeus)
81    {
82        PhysicsObject haakimppu = PhysicsObject.CreateStaticObject(leveys, korkeus);
83        haakimppu.IgnoresCollisionResponse = true;
84        haakimppu.Position = paikka;
85        haakimppu.Image = Haakimppukuva;
86        haakimppu.Tag = "Haakimppu";
87        Add(haakimppu);
88    }
89
90    void LisaaKakku(Vector paikka, double leveys, double korkeus)
91    {
92        PhysicsObject kakku = PhysicsObject.CreateStaticObject(leveys, korkeus);
93        kakku.IgnoresCollisionResponse = true;
94        kakku.Position = paikka;
95        kakku.Image = Kakku;
96        kakku.Tag = "kakku";
97        Add(kakku);
98    }
99
100
101    void LisaaLuka(Vector paikka, double leveys, double korkeus)
102    {
103        PlatformCharacter Luka = new PlatformCharacter(leveys, korkeus);
104        Luka.Position = paikka;
105        Luka.Image = LukaKuva;
106        Luka.Tag = "Luka";
107        Add(Luka);
108
109        PlatformWandererBrain satunnaisAivot = new PlatformWandererBrain();
110        satunnaisAivot.Speed = 20;
111        satunnaisAivot.FallsOffPlatforms = true;
112        satunnaisAivot.TriesToJump = true;
113        Luka.Brain = satunnaisAivot;
114        satunnaisAivot.Active = true;
115
116    }
117    void LisaaEtana(Vector paikka, double leveys, double korkeus)
118    {
119        LisaaPahis(paikka, leveys, korkeus, etanaKuva, "Etana");
120
121    }
122
123    void LisaaKakka(Vector paikka, double leveys, double korkeus)
124    {
125        LisaaPahis(paikka, leveys, korkeus, kakkaKuva, "kakka");
126    }
127
128
129    void LisaaPahis(Vector paikka, double leveys, double korkeus, Image hahmonKuva, String tag)
130    {
131        PlatformCharacter pahis = new PlatformCharacter(leveys, korkeus * 0.8);
132        pahis.IgnoresCollisionResponse = false;
133        pahis.Position = paikka;
134        pahis.Image = hahmonKuva;
135        pahis.MirrorImage();
136        pahis.Tag = tag;
137        Add(pahis);
138
139        PlatformWandererBrain satunnaisAivot = new PlatformWandererBrain();
140        satunnaisAivot.Speed = 20;
141        pahis.Brain = satunnaisAivot;
142        satunnaisAivot.Active = true;
143
144
145    }
146    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus, Image hahmonKuva)
147    {
148        pelaaja1 = new PlatformCharacter(leveys * 0.5, korkeus);
149        pelaaja1.Position = paikka;
150        pelaaja1.Mass = 4.0;
151        pelaaja1.Image = EmmaKuva;
152        AddCollisionHandler(pelaaja1, "Haakimppu", TormaaEsineeseen);
153        AddCollisionHandler(pelaaja1, "kakku", TormaaEsineeseen);
154        AddCollisionHandler(pelaaja1, "Etana", TormaaPahikseen);
155        AddCollisionHandler(pelaaja1, "kakka", TormaaPahikseen);
156        AddCollisionHandler(pelaaja1, "Luka", TormaaPahikseen);
157
158        Add(pelaaja1);
159
160
161    }
162    void PelaajaTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
163    {
164        MessageDisplay.Add("Keräsit Hääkimpun");
165    }
166
167    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus, Image hahmonKuva)
168    {
169        pelaaja2 = new PlatformCharacter(leveys * 0.5, korkeus);
170        pelaaja2.Position = paikka;
171        pelaaja2.Mass = 4.0;
172        pelaaja2.Image = JeremiKuva;
173        AddCollisionHandler(pelaaja2, "Haakimppu", TormaaEsineeseen);
174        AddCollisionHandler(pelaaja2, "kakku", TormaaEsineeseen);
175        AddCollisionHandler(pelaaja2, "Etana", TormaaPahikseen);
176        AddCollisionHandler(pelaaja2, "kakka", TormaaPahikseen);
177        AddCollisionHandler(pelaaja2, "Luka", TormaaPahikseen);
178
179        Add(pelaaja2);
180
181
182    }
183
184    void LisaaNappaimet()
185    {
186        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
187        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
188
189        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
190        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
191        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
192
193        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
194        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja2, nopeus);
195        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
196
197        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
198
199        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
200        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
201        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
202
203        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
204    }
205
206    void Liikuta(PlatformCharacter hahmo, double nopeus)
207    {
208        hahmo.Walk(nopeus);
209    }
210
211    void Hyppaa(PlatformCharacter hahmo, double nopeus)
212    {
213        hahmo.Jump(600);
214    }
215
216    void TormaaEsineeseen(PhysicsObject hahmo, PhysicsObject esine)
217    {
218        maaliAani.Play();
219        MessageDisplay.Add("Keräsit esineen!");
220        esine.Destroy();
221    }
222
223    void TormaaPahikseen(PhysicsObject hahmo, PhysicsObject pahis)
224    {
225
226
227
228        if (pahis.Tag.Equals("Luka"))
229        {
230            if (hahmo.Bottom >= pahis.Top - pahis.Height / 5)
231            { // jos ollaan Lukan yläpuolella, Luka kuolee
232                pahis.Destroy();
233                MessageDisplay.Add("Onnea-voitit pelin");
234                Timer.SingleShot(2, LisaaAlkuValikko);
235            }
236            else
237            {
238                // jos ei oltu Lukan yläpuolella
239                hahmo.Destroy();
240                MessageDisplay.Add("Voi ei- Kuolit!!");
241                Timer.SingleShot(2, LisaaAlkuValikko);
242            }
243        }
244        else
245        {
246            //mikä tahansa muu = kuolema
247            MessageDisplay.Add("Voi Ei- Kuolit!!");
248            hahmo.Destroy();
249            Timer.SingleShot(2, LisaaAlkuValikko);
250        }
251    }
252    void LisaaAlkuValikko()
253    {
254        ClearAll();
255        MultiSelectWindow AlkuValikko = new MultiSelectWindow("pelin alkuvalikko", "Aloita peli", "Lopeta");
256        //AlkuValikko.Image = "onneaHääparille";
257        //Level.Background.Image = onneaHääparille;
258        Add(AlkuValikko);
259        AlkuValikko.AddItemHandler(0, AloitaPeli);
260        AlkuValikko.AddItemHandler(1, Exit);
261    }
262}
Note: See TracBrowser for help on using the repository browser.