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

Revision 9199, 7.1 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        MessageDisplay.Add("Tehtäväsi On Kerätä Kaikki Kolikot(6 kpl) Kun Löydät Kaikki Mene Kotiin Ja Laita Rahat Säästöön");
40
41        LuoPistelaskuri();
42
43        Gravity = new Vector(0, -1000);
44
45        LuoKentta();
46        LisaaNappaimet();
47
48        Camera.Follow(pelaaja1);
49        Camera.ZoomFactor = 1.8;
50        Camera.StayInLevel = true;
51    }
52
53    void LuoKentta()
54    {
55        TileMap kentta = TileMap.FromLevelAsset("kentta1");
56        kentta.SetTileMethod('#', LisaaTaso);
57        kentta.SetTileMethod('*', LisaaTahti);
58        kentta.SetTileMethod('N', LisaaPelaaja);
59        kentta.SetTileMethod('V', LisaaVoidi);
60        kentta.SetTileMethod('M', LisaaMaali);
61        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
62        Level.CreateBorders();
63        Level.Background.CreateGradient(Color.Red, Color.Blue);
64    }
65
66    void LopetusRuutu()
67    {
68        IsPaused = true;
69        MultiSelectWindow Lopetusruutu = new MultiSelectWindow("Haluatko Lopettaa Walrus Pelin",
70        "Jatka Peliä", "Peli Sammuu :(");
71        Add(Lopetusruutu);
72
73        Lopetusruutu.AddItemHandler(0, Jatka);
74        Lopetusruutu.AddItemHandler(1, Exit);
75    }
76
77    void Jatka()
78    {
79        IsPaused = false;
80    }
81
82    void LuoPistelaskuri()
83    {
84        pisteLaskuri = new IntMeter(0);
85
86        Label pisteNaytto = new Label();
87        pisteNaytto.X = Screen.Left + 100;
88        pisteNaytto.Y = Screen.Top - 100;
89        pisteNaytto.TextColor = Color.Black;
90        pisteNaytto.Color = Color.White;
91
92
93        pisteNaytto.Title = "Kolikot";
94        pisteNaytto.BindTo(pisteLaskuri);
95        Add(pisteNaytto);
96    }
97
98    void LisaaTaso(Vector paikka, double leveys, double korkeus)
99    {
100        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
101        taso.Position = paikka;
102        Color vari = RandomGen.NextColor();
103        taso.Color = vari;
104        taso.Shape = Shape.Rectangle;
105        Add(taso);
106    }
107
108    void LisaaTahti(Vector paikka, double leveys, double korkeus)
109    {
110        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
111        tahti.IgnoresCollisionResponse = true;
112        tahti.Position = paikka;
113        tahti.Image = tahtiKuva;
114        tahti.Tag = "tahti";
115        Add(tahti);
116    }
117
118    void LisaaVoidi(Vector paikka1, double leveys, double korkeus)
119    {
120        PhysicsObject voidi = PhysicsObject.CreateStaticObject(12600, korkeus);
121        voidi.IgnoresCollisionResponse = true;
122        voidi.Position = paikka1;
123        voidi.Image = voidikuva;
124        voidi.Tag = "voidi";
125        Add(voidi);
126    }
127
128    void LisaaMaali(Vector paikka2, double leveys, double korkeus)
129    {
130        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
131        maali.IgnoresCollisionResponse = true;
132        maali.Position = paikka2;
133        maali.Tag = "maali";
134        maali.Image = maalikuva;
135        Add(maali);
136
137    }
138
139    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
140    {
141        pelaaja1 = new PlatformCharacter(leveys, korkeus);
142        pelaaja1.Position = paikka;
143        pelaaja1.Mass = 4.0;
144        pelaaja1.Image = pelaajanKuva;
145        pelaaja1.TurnsWhenWalking = false;
146        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
147        AddCollisionHandler(pelaaja1, "voidi", TormaaVoidiin);
148        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
149        Add(pelaaja1);
150    }
151   
152    void LisaaNappaimet()
153    {
154        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
155        Keyboard.Listen(Key.Escape, ButtonState.Pressed, LopetusRuutu, "Lopetus Ruutu");
156        Keyboard.Listen(Key.F3, ButtonState.Released, AloitaPeli, null);
157
158        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
159        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
160        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
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
166        Keyboard.Listen(Key.NumPad4, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
167        Keyboard.Listen(Key.NumPad6, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
168        Keyboard.Listen(Key.NumPad8, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
169
170
171        ControllerOne.Listen(Button.Back, ButtonState.Pressed, LopetusRuutu, "Lopetus valikko");
172
173        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
174        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
175        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
176    }
177
178    void Liikuta(PlatformCharacter hahmo, double nopeus)
179    {
180        hahmo.Walk(nopeus);
181        if (nopeus<0)
182        {
183            hahmo.Image = pelaajanKuva;
184
185
186        }
187        else
188        {
189            hahmo.Image = pelaajanKuvaToiseenSuuntaan;
190
191        }
192    }
193
194    void Hyppaa(PlatformCharacter hahmo, double nopeus)
195    {
196        hahmo.Jump(nopeus);
197        HyppyAani.Play();
198    }
199
200    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
201    {
202        pisteLaskuri.Value += 1;
203        kolikkoAani.Play();
204        MessageDisplay.Add("Sait Rahan");
205        tahti.Destroy();
206    }
207
208    void TormaaVoidiin(PhysicsObject hahmo, PhysicsObject voidi)
209    {
210        KuolemaAani.Play();
211        MessageDisplay.Add("Suoritit Itsemurhan");
212        pelaaja1.Destroy();
213    }
214
215    void TormaaMaaliin(PhysicsObject hahmo, PhysicsObject maali)
216    {
217        if (pisteLaskuri.Value < 6)
218            return;
219        kolikkoAani.Play();
220        MessageDisplay.Add("Voitit Pelin Ja Laitoit Rahat Säästöön");
221        pelaaja1.Destroy();
222    }
223}
Note: See TracBrowser for help on using the repository browser.