source: 2017/30/TimoH/Jumping_Walrus_24x/Jumping_Walrus_24x/Jumping_Walrus_24x/Jumping_Walrus_24x.cs @ 9188

Revision 9188, 6.3 KB checked in by npo17_63, 22 months 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 Jumping_Walrus_24x : PhysicsGame
10{ 
11   
12    const double nopeus = 450;
13    const double hyppyNopeus = 800;
14    const int RUUDUN_KOKO = 40;
15    PlatformCharacter pelaaja1;
16    IntMeter pisteLaskuri;
17
18    Image pelaajanKuva = LoadImage("walrussi");
19    Image tahtiKuva = LoadImage("Dogeraha");
20    Image pelaajanKuvaToiseenSuuntaan = LoadImage("walrussi1");
21    Image voidikuva = LoadImage("voidikuva");
22    Image maalikuva = LoadImage("koti");
23
24    SoundEffect kolikkoAani = LoadSoundEffect("KolikkoKolahdus");
25    SoundEffect KuolemaAani = LoadSoundEffect("KuolemaAani");
26    SoundEffect HyppyAani = LoadSoundEffect("hyppy");
27
28    public override void Begin()
29    {
30
31        AloitaPeli();
32       
33    }
34
35    void AloitaPeli()
36    {
37        ClearAll();
38
39        LuoPistelaskuri();
40
41        Gravity = new Vector(0, -1000);
42
43        LuoKentta();
44        LisaaNappaimet();
45
46        Camera.Follow(pelaaja1);
47        Camera.ZoomFactor = 1.2;
48        Camera.StayInLevel = true;
49    }
50
51    void LuoKentta()
52    {
53        TileMap kentta = TileMap.FromLevelAsset("kentta1");
54        kentta.SetTileMethod('#', LisaaTaso);
55        kentta.SetTileMethod('*', LisaaTahti);
56        kentta.SetTileMethod('N', LisaaPelaaja);
57        kentta.SetTileMethod('V', LisaaVoidi);
58        kentta.SetTileMethod('M', LisaaMaali);
59        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
60        Level.CreateBorders();
61        Level.Background.CreateGradient(Color.Red, Color.Blue);
62    }
63
64    void LopetusRuutu()
65    {
66        IsPaused = true;
67        MultiSelectWindow Lopetusruutu = new MultiSelectWindow("Haluatko Lopettaa Walrus Pelin",
68        "Jatka Peliä", "Peli Sammuu :(");
69        Add(Lopetusruutu);
70
71        Lopetusruutu.AddItemHandler(0, Jatka);
72        Lopetusruutu.AddItemHandler(1, Exit);
73    }
74
75    void Jatka()
76    {
77        IsPaused = false;
78    }
79
80    void LuoPistelaskuri()
81    {
82        pisteLaskuri = new IntMeter(0);
83
84        Label pisteNaytto = new Label();
85        pisteNaytto.X = Screen.Left + 100;
86        pisteNaytto.Y = Screen.Top - 100;
87        pisteNaytto.TextColor = Color.Black;
88        pisteNaytto.Color = Color.White;
89
90
91        pisteNaytto.Title = "Kolikot";
92        pisteNaytto.BindTo(pisteLaskuri);
93        Add(pisteNaytto);
94    }
95
96    void LisaaTaso(Vector paikka, double leveys, double korkeus)
97    {
98        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
99        taso.Position = paikka;
100        Color vari = RandomGen.NextColor();
101        taso.Color = vari;
102        taso.Shape = Shape.Rectangle;
103        Add(taso);
104    }
105
106    void LisaaTahti(Vector paikka, double leveys, double korkeus)
107    {
108        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
109        tahti.IgnoresCollisionResponse = true;
110        tahti.Position = paikka;
111        tahti.Image = tahtiKuva;
112        tahti.Tag = "tahti";
113        Add(tahti);
114    }
115
116    void LisaaVoidi(Vector paikka1, double leveys, double korkeus)
117    {
118        PhysicsObject voidi = PhysicsObject.CreateStaticObject(leveys, korkeus);
119        voidi.IgnoresCollisionResponse = true;
120        voidi.Position = paikka1;
121        voidi.Image = voidikuva;
122        voidi.Tag = "voidi";
123        Add(voidi);
124
125    }
126
127    void LisaaMaali(Vector paikka2, double leveys, double korkeus)
128    {
129        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
130        maali.IgnoresCollisionResponse = true;
131        maali.Position = paikka2;
132        maali.Tag = "maali";
133        maali.Image = maalikuva;
134        Add(maali);
135
136    }
137
138    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
139    {
140        pelaaja1 = new PlatformCharacter(leveys, korkeus);
141        pelaaja1.Position = paikka;
142        pelaaja1.Mass = 4.0;
143        pelaaja1.Image = pelaajanKuva;
144        pelaaja1.TurnsWhenWalking = false;
145        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
146        AddCollisionHandler(pelaaja1, "voidi", TormaaVoidiin);
147        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
148        Add(pelaaja1);
149    }
150   
151    void LisaaNappaimet()
152    {
153        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
154        Keyboard.Listen(Key.Escape, ButtonState.Pressed, LopetusRuutu, "Lopetus Ruutu");
155        Keyboard.Listen(Key.F3, ButtonState.Released, AloitaPeli, null);
156
157        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
158        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
159        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
160
161        ControllerOne.Listen(Button.Back, ButtonState.Pressed, LopetusRuutu, "Lopetus valikko");
162
163        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
164        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
165        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
166    }
167
168    void Liikuta(PlatformCharacter hahmo, double nopeus)
169    {
170        hahmo.Walk(nopeus);
171        if (nopeus<0)
172        {
173            hahmo.Image = pelaajanKuva;
174
175
176        }
177        else
178        {
179            hahmo.Image = pelaajanKuvaToiseenSuuntaan;
180
181        }
182    }
183
184    void Hyppaa(PlatformCharacter hahmo, double nopeus)
185    {
186        hahmo.Jump(nopeus);
187        HyppyAani.Play();
188    }
189
190    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
191    {
192        pisteLaskuri.Value += 1;
193        kolikkoAani.Play();
194        MessageDisplay.Add("Sait Rahan");
195        tahti.Destroy();
196    }
197
198    void TormaaVoidiin(PhysicsObject hahmo, PhysicsObject voidi)
199    {
200        KuolemaAani.Play();
201        MessageDisplay.Add("Kuolit");
202        pelaaja1.Destroy();
203    }
204
205    void TormaaMaaliin(PhysicsObject hahmo, PhysicsObject maali)
206    {
207        if (pisteLaskuri.Value < 0)
208            return;
209        kolikkoAani.Play();
210        MessageDisplay.Add("Voitit Pelin Ja Sait Kaikki Dogen Rahat Nyt Voit Seikkailla");
211    }
212}
Note: See TracBrowser for help on using the repository browser.