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

Revision 9159, 6.3 KB checked in by npo17_63, 2 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 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        taso.Color = Color.White;
101        taso.Shape = Shape.Rectangle;
102        Add(taso);
103    }
104
105    void LisaaTahti(Vector paikka, double leveys, double korkeus)
106    {
107        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
108        tahti.IgnoresCollisionResponse = true;
109        tahti.Position = paikka;
110        tahti.Image = tahtiKuva;
111        tahti.Tag = "tahti";
112        Add(tahti);
113    }
114
115    void LisaaVoidi(Vector paikka1, double leveys, double korkeus)
116    {
117        PhysicsObject voidi = PhysicsObject.CreateStaticObject(leveys, korkeus);
118        voidi.IgnoresCollisionResponse = true;
119        voidi.Position = paikka1;
120        voidi.Image = voidikuva;
121        voidi.Tag = "voidi";
122        Add(voidi);
123
124    }
125
126    void LisaaMaali(Vector paikka2, double leveys, double korkeus)
127    {
128        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
129        maali.IgnoresCollisionResponse = true;
130        maali.Position = paikka2;
131        maali.Tag = "maali";
132        maali.Image = maalikuva;
133        Add(maali);
134
135    }
136
137    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
138    {
139        pelaaja1 = new PlatformCharacter(leveys, korkeus);
140        pelaaja1.Position = paikka;
141        pelaaja1.Mass = 4.0;
142        pelaaja1.Image = pelaajanKuva;
143        pelaaja1.TurnsWhenWalking = false;
144        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
145        AddCollisionHandler(pelaaja1, "voidi", TormaaVoidiin);
146        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
147        Add(pelaaja1);
148    }
149   
150    void LisaaNappaimet()
151    {
152        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
153        Keyboard.Listen(Key.Escape, ButtonState.Pressed, LopetusRuutu, "Lopetus Ruutu");
154        Keyboard.Listen(Key.F3, ButtonState.Released, AloitaPeli, null);
155
156        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
157        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
158        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
159
160        ControllerOne.Listen(Button.Back, ButtonState.Pressed, LopetusRuutu, "Lopetus valikko");
161
162        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
163        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
164        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
165    }
166
167    void Liikuta(PlatformCharacter hahmo, double nopeus)
168    {
169        hahmo.Walk(nopeus);
170        if (nopeus<0)
171        {
172            hahmo.Image = pelaajanKuva;
173
174
175        }
176        else
177        {
178            hahmo.Image = pelaajanKuvaToiseenSuuntaan;
179
180        }
181    }
182
183    void Hyppaa(PlatformCharacter hahmo, double nopeus)
184    {
185        hahmo.Jump(nopeus);
186        HyppyAani.Play();
187    }
188
189    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
190    {
191        pisteLaskuri.Value += 1;
192        kolikkoAani.Play();
193        MessageDisplay.Add("Sait Dogen Rahan");
194        tahti.Destroy();
195    }
196
197    void TormaaVoidiin(PhysicsObject hahmo, PhysicsObject voidi)
198    {
199        KuolemaAani.Play();
200        MessageDisplay.Add("Kuolit");
201        pelaaja1.Destroy();
202    }
203
204    void TormaaMaaliin(PhysicsObject hahmo, PhysicsObject maali)
205    {
206        if (pisteLaskuri.Value < 6)
207            return;
208        MessageDisplay.Add("Voitit Pelin Ja Sait Kaikki Dogen Rahat Nyt Voit Seikkailla");
209    }
210}
Note: See TracBrowser for help on using the repository browser.