source: 2017/utsjoki/RásteE/Space game Mau vs Mjieau/Space game Mau vs Mjieau/Space_game_Mau_vs_Mjieau/Space_game_Mau_vs_Mjieau.cs @ 9198

Revision 9198, 8.4 KB checked in by otosjahn, 2 years ago (diff)
RevLine 
[9090]1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Space_game_Mau_vs_Mjieau : PhysicsGame
10{
[9127]11    const double nopeus = 250;
[9090]12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
[9171]16    //PlatformCharacter pelaaja2;
[9090]17
[9198]18    Font fontti = LoadFont("Fontti");
19
[9127]20    Vector alku;
[9090]21    Image pelaajanKuva = LoadImage("mau1");
22    Image pelaajanKuva2 = LoadImage("Mjieau");
23    Image tahtiKuva = LoadImage("tahti");
24
[9171]25    Sound ääni;
[9090]26
[9171]27    SoundEffect maaliAani = LoadSoundEffect("tähteen");
28    SoundEffect hyppyääni = LoadSoundEffect("2");
29    SoundEffect piikkiääni = LoadSoundEffect("jaana");
30    SoundEffect TheEnd = LoadSoundEffect("maailmaloppu");
31
[9090]32    public override void Begin()
33    {
[9198]34        ClearAll();
35        MessageDisplay.Font = fontti;
[9171]36        ääni = maaliAani.CreateSound();
[9090]37        Gravity = new Vector(0, -1000);
38
39        LuoKentta();
40        LisaaNappaimet();
41
[9171]42        Camera.Follow(pelaaja1);
[9090]43        Camera.ZoomFactor = 1.2;
[9171]44        Camera.StayInLevel = true;
[9090]45    }
46
47    void LuoKentta()
48    {
49        TileMap kentta = TileMap.FromLevelAsset("kentta1");
50        kentta.SetTileMethod('A', LisaaAlku);
51        kentta.SetTileMethod('#', LisaaTaso);
52        kentta.SetTileMethod('&', LisaaTaso2);
53        kentta.SetTileMethod('p', LisaaPiikki);
54        kentta.SetTileMethod('V', LisaaMaali);
55        kentta.SetTileMethod('*', LisaaTahti);
56        kentta.SetTileMethod('N', LisaaPelaaja);
[9171]57        //kentta.SetTileMethod('s', LisaaPelaaja2);
[9090]58
59        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
60        Level.CreateBorders();
[9127]61        Level.Background.CreateGradient(Color.White, Color.Black);
[9090]62    }
63
64    void LisaaAlku(Vector paikka, double leveys, double korkeus)
65    {
66        PhysicsObject alku = PhysicsObject.CreateStaticObject(leveys, korkeus);
67        alku.Position = paikka;
68        alku.Color = Color.White;
69        Add(alku);
70    }
71    void LisaaTaso(Vector paikka, double leveys, double korkeus)
72    {
73        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
74        taso.Position = paikka;
[9171]75        taso.Color = Color.Green;taso.Image = pelaajanKuva2;
[9127]76        taso.Tag = "taso";
[9090]77        Add(taso);
78    }
79
80    void LisaaTaso2(Vector paikka, double leveys, double korkeus)
81    {
82        PhysicsObject taso2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
83        taso2.Position = paikka;
84        taso2.Color = Color.Blue;
85        Add(taso2);
[9127]86        taso2.Tag = "vesi";
[9090]87    }
88
89    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
90    {
[9171]91        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
[9090]92        piikki.Position = paikka;
93        piikki.Color = Color.Red;
[9171]94        piikki.Image = LoadImage("piikki");
[9090]95        piikki.Shape = Shape.Triangle;
[9127]96        piikki.Tag = "piikki";
[9090]97        Add(piikki);
98    }
99    void LisaaMaali(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys*7, korkeus*7);
102        taso.Position = paikka;
103        taso.Image=LoadImage("maali");
[9171]104        taso.Tag = "maali";
[9090]105        Add(taso);
106    }
107
108    void LisaaTahti(Vector paikka, double leveys, double korkeus)
109    {
[9127]110        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys*0.5, korkeus*0.5);
[9090]111        tahti.IgnoresCollisionResponse = true;
112        tahti.Position = paikka;
113        tahti.Image = tahtiKuva;
114        tahti.Tag = "tahti";
115        Add(tahti);
116    }
[9127]117   
[9090]118    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
119    {
[9171]120        pelaaja1 = new PlatformCharacter(leveys*2, korkeus*2);
[9090]121        pelaaja1.Position = paikka;
122        pelaaja1.Mass = 4.0;
123        pelaaja1.Image = pelaajanKuva;
124        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
[9127]125        AddCollisionHandler(pelaaja1, "vesi", MauPakene);
[9171]126        AddCollisionHandler(pelaaja1, "piikki", Mauosuupiikkiin);
127        AddCollisionHandler(pelaaja1, "maali", Mauosuumaaliin);
128        AddCollisionHandler(pelaaja1, "taso", OsuuMaahan);
[9090]129        Add(pelaaja1);
[9127]130        alku = paikka;
[9090]131    }
[9171]132    //void OsuuPiikkiin (PhysicsObject pelaaja1, PhysicsObject piikki)
133    //{
134    //    AddCollisionHandler(pelaaja1, "vesi", MauuOsuuVeteen);
135    //    pelaaja2.Tag = "Mjieau";
136    //    pelaaja1.Destroy();
137    //}
[9090]138
[9127]139    void MauPakene(PhysicsObject pelaaja1, PhysicsObject vesi)
140    {
141        pelaaja1.Position = alku;
142    }
[9171]143    //void LisaaPelaaja2(Vector paikka, double leveys, double korkeus)
144    //{
145    //    pelaaja2 = new PlatformCharacter(leveys * 3, korkeus * 3);
146    //    pelaaja2.Position = paikka;
147    //    pelaaja2.Mass = 4.0;
148    //    pelaaja2.Image = pelaajanKuva2;
149    //    AddCollisionHandler(pelaaja2, "tahti", TormaaTahteen);
150    //    AddCollisionHandler(pelaaja2, "taso", OsuuMaahan);
151    //    AddCollisionHandler(pelaaja2, "vesi", MjieauOsuuVeteen);
152    //    pelaaja2.Tag = "Mjieau";
153    //    Add(pelaaja2);
154    //}
155    void Mauosuupiikkiin(PhysicsObject pelaaja1, PhysicsObject piikki)
[9090]156    {
[9171]157        pelaaja1.Width -= 5;
158        pelaaja1.Height -= 5;
159
160        piikkiääni.Play();
161
162        if (pelaaja1.Width <= 15)
[9127]163        {
[9198]164            Label tekstikentta = new Label();
165            tekstikentta.Font = fontti;
166            tekstikentta.Text = "Boađán ruovttoluotta!";
167            tekstikentta.TextColor = Color.Red;
168            tekstikentta.TextScale *= 3;
169            Add(tekstikentta);
170
[9171]171            pelaaja1.Destroy();
[9198]172            Timer.SingleShot(2, Begin);
[9127]173        }
174    }
[9171]175    void Mauosuumaaliin(PhysicsObject pelaaja1, PhysicsObject maali)
[9127]176    {
[9171]177        maali.Destroy();
[9198]178
179        Label tekstikentta = new Label();
180        tekstikentta.Font = fontti;
181        tekstikentta.Text = "VUITEN!";
182        tekstikentta.TextColor = Color.Green;
183        tekstikentta.TextScale *= 7;
184        Add(tekstikentta);
185
[9171]186        Explosion rajahdys = new Explosion(300);
187        rajahdys.Sound = TheEnd;
188        rajahdys.Position = maali.Position;
189        Add(rajahdys);
[9198]190        Timer.SingleShot(5, delegate { LopetaPeli(); });
191        return;
[9127]192    }
[9198]193    void LopetaPeli() { Exit();return; }
[9171]194
195    void OsuuMaahan (PhysicsObject pelaaja2, PhysicsObject taso)
196    {
197        ääni.Pitch = (pelaaja1.Y / Level.Height * 2) - 1;
198        ääni.Play();
[9198]199        //MessageDisplay.Add("Smávun!");
[9171]200    }
[9090]201    void LisaaNappaimet()
202    {
203        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
204        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
205
[9171]206        //Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
207        //Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
208        //Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
[9090]209
210        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
211        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
212        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
213
[9198]214        Keyboard.Listen(Key.Enter, ButtonState.Pressed, Mauosuupiikkiin, "Pelaaja hyppää", pelaaja1, pelaaja1);
215
[9090]216        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
217
218        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
219        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
220        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
221
222        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
223    }
224
225    void Liikuta(PlatformCharacter hahmo, double nopeus)
226    {
227        hahmo.Walk(nopeus);
228    }
229
230    void Hyppaa(PlatformCharacter hahmo, double nopeus)
231    {
232        hahmo.Jump(nopeus);
[9171]233        hyppyääni.Play();
[9090]234    }
235
236    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
237    {
238        maaliAani.Play();
[9198]239        //MessageDisplay.Add("Boađán ruovttoluotta!");
[9090]240        tahti.Destroy();
[9171]241
242        pelaaja1.Width += 10;
243        pelaaja1.Height += 10;
[9090]244    }
245}
Note: See TracBrowser for help on using the repository browser.