source: 2015/24/OlaviL/Tasohyppelypeli5/Tasohyppelypeli5/Tasohyppelypeli5/Tasohyppelypeli5.cs @ 6001

Revision 6001, 6.3 KB checked in by sieerinn, 4 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 Tasohyppelypeli5 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    Image olionKuva = LoadImage("gem");
16
17    PlatformCharacter timantti;
18
19    int kenttaNro = 1;
20
21    Image pelaajanKuva = LoadImage("Diamond-02-copy");
22    Image tahtiKuva = LoadImage("Diamond-02-copy");
23
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25    public override void Begin()
26    {
27        Gravity = new Vector(0, -1000);
28
29        LuoKentta(kentta);
30        LisaaNappaimet();
31        LuoPistelaskuri();
32        LuoAikaLaskuri(400.0, 400.0);
33
34        IsFullScreen = true;
35
36
37        Camera.Follow(timantti);
38        Camera.ZoomFactor = 1.2;
39        Camera.StayInLevel = true;
40    }
41
42    void LuoKentta(string kentta)
43    {
44        TileMap ruudut = TileMap.FromLevelAsset("kentta");
45        ruudut.SetTileMethod('K', LisaaKolikko);
46        ruudut.SetTileMethod('#', LisaaTaso);
47        ruudut.SetTileMethod('*', LisaaTahti);
48        ruudut.SetTileMethod('T', LisaaPelaaja);
49        ruudut.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
50        Level.CreateBorders();
51        Level.Background.CreateStars(10000);
52        Gravity = new Vector(0.0, -800.0);
53    AddCollisionHandler(timantti, "pahis", LisaaRajahdys);
54   
55    }
56
57    void LisaaTaso(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); // Nämä ovat ruutuja, joiden päällä hyppiä.
60        taso.Position = paikka;
61        taso.Color = Color.Green;
62        Add(taso);
63    }
64   
65    void LisaaTahti(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject kolikko = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        kolikko.IgnoresCollisionResponse = true;
69        kolikko.Position = paikka;
70        kolikko.Image = tahtiKuva;
71        kolikko.Tag = "pahis";
72        Add(kolikko);
73    }
74
75
76
77    void LisaaKolikko(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
80        tahti.IgnoresCollisionResponse = true;
81        tahti.Position = paikka;
82        tahti.Image = tahtiKuva;
83        tahti.Tag = "paha";
84        Add(tahti);
85
86    }
87    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
88    {
89        timantti = new PlatformCharacter(leveys, korkeus);
90        timantti.Position = paikka;
91        timantti.Mass = 4.0;
92        timantti.Image = pelaajanKuva;
93        AddCollisionHandler(timantti, "paha", TormaaTahteen);
94        Add(timantti);
95       
96
97    }
98
99    void LisaaNappaimet()
100    {
101        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
102        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
103        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
104
105        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", timantti, -nopeus);
106        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", timantti, nopeus);
107        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", timantti, hyppyNopeus);
108        Keyboard.Listen(Key.R, ButtonState.Down, AloitaAlusta, "Aloittaa pelin alusta");
109
110        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
111        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", timantti, -nopeus);
112        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", timantti, nopeus);
113        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", timantti, hyppyNopeus);
114        ControllerOne.Listen(Button.X, ButtonState.Down, AloitaAlusta, "Aloittaa pelin alusta");
115        ControllerOne.Listen(Button.Y, ButtonState.Pressed, Pause, "Pysäyttää pelin");
116
117        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
118
119       
120       
121    }
122
123    void Liikuta(PlatformCharacter hahmo, double nopeus)
124    {
125        hahmo.Walk(nopeus);
126    }
127
128    void Hyppaa(PlatformCharacter hahmo, double nopeus)
129    {
130        hahmo.Jump(nopeus);
131    }
132
133    void TormaaTahteen(PhysicsObject timantti , PhysicsObject kolikko)
134    {
135        maaliAani.Play();
136        kolikko.Destroy();
137        pisteLaskuri.Value += 1;
138    }
139
140    void AloitaAlusta()
141    {
142        ClearAll();
143        LuoKentta("kentta");
144        LisaaNappaimet();
145        Camera.Follow(timantti);
146    }
147
148    IntMeter pisteLaskuri;
149
150    void LuoPistelaskuri()
151    {
152        pisteLaskuri = new IntMeter(0);
153
154        Label pisteNaytto = new Label();
155        pisteNaytto.X = Screen.Left + 400;
156        pisteNaytto.Y = Screen.Top - 100;
157        pisteNaytto.TextColor = Color.Black;
158        pisteNaytto.Color = Color.White;
159        pisteNaytto.Title = "Tähdet";
160
161
162        IntMeter keratytEsineet = new IntMeter(0);
163        pisteLaskuri.MaxValue = 1;
164        pisteLaskuri.UpperLimit += KaikkiKeratty;
165
166        pisteNaytto.BindTo(pisteLaskuri);
167        Add(pisteNaytto);
168
169    }
170   
171
172
173
174
175
176    void KaikkiKeratty()
177    {
178        MessageDisplay.Add("Voitit! Nyt voit leikkiä kaikella muulla.");
179        kenttaNro++;
180        SeuraavaKentta();
181    }
182   
183    void LuoAikaLaskuri(double x, double y)
184    {
185        Timer aikaLaskuri = new Timer();
186        aikaLaskuri.Start();
187
188        Label aikaNaytto = new Label();
189        aikaNaytto.TextColor = Color.White;
190        aikaNaytto.DecimalPlaces = 1;
191        aikaNaytto.X = 400.0;
192        aikaNaytto.Y = 400.0;
193        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
194        Add(aikaNaytto);
195    }
196
197   
198void LisaaRajahdys(PhysicsObject tormaaja, PhysicsObject kohde)
199{
200    Explosion rajahdys = new Explosion(2000);
201    rajahdys.Position = kohde.Position;
202    kohde.Destroy();
203    Add(rajahdys);
204}
205void SeuraavaKentta()
206{
207    ClearAll();
208
209    if (kenttaNro == 1) LuoKentta("kentta1");
210    else if (kenttaNro == 2) LuoKentta("kentta2");
211    else if (kenttaNro == 3) LuoKentta("kentta3");
212    else if (kenttaNro > 3) Exit();
213
214    LisaaNappaimet();
215
216}
217
218
219
220}
Note: See TracBrowser for help on using the repository browser.