source: 2014/27/WilleK/Project_000/Project_000/Project_000/Project_000.cs @ 5239

Revision 5239, 8.1 KB checked in by wiaukota, 7 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 Project_000 : PhysicsGame
10{
11    const double nopeus = 80;
12    const double hyppyNopeus = 400;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("Pelaaja1");
18    Image pelaajanKuvaHyppy = LoadImage("Pelaaja1-3");
19    private Image[] PelaajanKavely = LoadImages("Pelaaja1-1", "Pelaaja1-2");
20    private Image[] PelaajaPaikallaan = LoadImages("Pelaaja1");
21
22    Image KolikkoKuva = LoadImage("Kolikko1");
23    Image ruohoKuva = LoadImage("Ruoho");
24    Image alkuvalikkoKuva  = LoadImage("Alkuvalikko");
25    Image pilviKuva = LoadImage("Pilvi");
26    Image klönttiKuva = LoadImage("Klöntti");
27    Image tausta1 = LoadImage("Tausta1");
28    int kenttänumero = 1;
29
30    SoundEffect maaliAani = LoadSoundEffect("maali");
31
32    public override void Begin()
33    {
34        SmoothTextures = false;
35        IsMouseVisible = true;
36        alkuvalikko();
37    }
38
39    void AloitaPeli()
40    {
41        ClearAll();
42        Gravity = new Vector(0, -1000);
43
44        LuoKentta();
45        LisaaNappaimet();
46        LuoPistelaskuri();
47        LuoKlönttiPistelaskuri();
48
49        Camera.Follow(pelaaja1);
50        Camera.ZoomFactor = 1.2;
51        Camera.StayInLevel = true;
52    }
53
54    void Seuraavakenttä()
55    {
56        kenttänumero++;
57        AloitaPeli();
58    }
59
60    void KenttäValikko()
61    {
62        MultiSelectWindow KenttäValikko = new MultiSelectWindow("Level Select", "Level 1", "Level 2");
63        Add(KenttäValikko);
64
65        KenttäValikko.Image = alkuvalikkoKuva;
66
67        KenttäValikko.AddItemHandler(0, AloitaPeli);
68    }
69
70    void alkuvalikko()
71    {
72        MultiSelectWindow alkuValikko = new MultiSelectWindow("Bluune","Start", "Options", "Quit");
73        Add(alkuValikko);
74
75        alkuValikko.Image= alkuvalikkoKuva;
76
77        alkuValikko.AddItemHandler(0, KenttäValikko);
78        //alkuValikko.AddItemHandler(1, ParhaatPisteet);
79        alkuValikko.AddItemHandler(2, Exit);
80    }
81
82    IntMeter pisteLaskuri;
83
84    void LuoPistelaskuri()
85    {
86        pisteLaskuri = new IntMeter(0);
87
88        Label pisteNaytto = new Label();
89        pisteNaytto.X = Screen.Left + 1150;
90        pisteNaytto.Y = Screen.Top - 100;
91        pisteNaytto.TextColor = Color.Black;
92        pisteNaytto.Title = "Coins";
93
94        pisteNaytto.BindTo(pisteLaskuri);
95        Add(pisteNaytto);
96    }
97
98    IntMeter pisteLaskuri1;
99
100    void LuoKlönttiPistelaskuri()
101    {
102        pisteLaskuri1 = new IntMeter(0);
103
104        Label pisteNaytto = new Label();
105        pisteNaytto.X = Screen.Left + 1000;
106        pisteNaytto.Y = Screen.Top - 100;
107        pisteNaytto.TextColor = Color.Black;
108        pisteNaytto.Title = "Slimes";
109
110        pisteNaytto.BindTo(pisteLaskuri1);
111        Add(pisteNaytto);
112    }
113
114    void LuoKentta()
115    {
116        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kenttä"+kenttänumero);
117        ruudut.SetTileMethod(Color.Blue, LisaaPelaaja);
118        ruudut.SetTileMethod(Color.Black, LisaaTaso);
119        ruudut.SetTileMethod(Color.Yellow, LisaaKolikko);
120        ruudut.SetTileMethod(Color.FromHexCode("7F3300"), LisaaMulta);
121        ruudut.SetTileMethod(Color.White, LisaaPilvi);
122        ruudut.SetTileMethod(Color.FromHexCode("00FFFF"), LisaaKlöntti);
123        ruudut.SetTileMethod(Color.FromHexCode("B6FF00"), LisaaKuilu);
124        ruudut.Execute(20, 20);
125
126        Level.CreateBorders();
127        Level.Background.Image = tausta1;
128        Level.Background.ScaleToLevelFull();
129    }
130
131    void LisaaKuilu(Vector paikka, double leveys, double korkeus)
132    {
133        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus/5.0);
134        taso.Position = paikka+new Vector(0, -korkeus*(2/5.0));
135        taso.IsVisible = false;
136        taso.Tag = "kuilu";
137        Add(taso);
138    }
139
140    void PelaajaKuoli(PhysicsObject pelaaja1, PhysicsObject kuilu)
141    {
142        MultiSelectWindow Pelaajakuoli1 = new MultiSelectWindow("Game Over", "Restart", "Quit");
143        Add(Pelaajakuoli1);
144
145        Pelaajakuoli1.AddItemHandler(0, AloitaPeli);
146        Pelaajakuoli1.AddItemHandler(1, alkuvalikko);
147    }
148
149    void LisaaTaso(Vector paikka, double leveys, double korkeus)
150    {
151        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
152        taso.Position = paikka;
153        taso.Image = ruohoKuva;
154        Add(taso);
155    }
156
157    void LisaaPilvi(Vector paikka, double leveys, double korkeus)
158    {
159        PhysicsObject pilvi = PhysicsObject.CreateStaticObject(leveys*3, korkeus);
160        pilvi.Position = paikka;
161        pilvi.Image = pilviKuva;
162        Add(pilvi);
163    }
164
165    void LisaaMulta(Vector paikka, double leveys, double korkeus)
166    {
167        PhysicsObject multa = PhysicsObject.CreateStaticObject(leveys, korkeus);
168        multa.Position = paikka;
169        multa.Color = Color.FromHexCode("7F3300");
170        Add(multa);
171    }
172
173    void LisaaKolikko(Vector paikka, double leveys, double korkeus)
174    {
175        PhysicsObject kolikko = PhysicsObject.CreateStaticObject(leveys, korkeus);
176        kolikko.IgnoresCollisionResponse = true;
177        kolikko.Position = paikka;
178        kolikko.Image = KolikkoKuva;
179        kolikko.Tag = "Coin";
180        Add(kolikko);
181    }
182
183    void LisaaKlöntti(Vector paikka, double leveys, double korkeus)
184    {
185        PhysicsObject klöntti = PhysicsObject.CreateStaticObject(leveys, korkeus);
186        klöntti.IgnoresCollisionResponse = true;
187        klöntti.Position = paikka;
188        klöntti.Image = klönttiKuva;
189        klöntti.Tag = "Klöntti";
190        Add(klöntti);
191    }
192
193    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
194    {
195        pelaaja1 = new PlatformCharacter(15, 15);
196        pelaaja1.Position = paikka;
197        pelaaja1.Mass = 4.0;
198        pelaaja1.Image = pelaajanKuva;
199        AddCollisionHandler(pelaaja1, "Coin", TormaaTahteen);
200        AddCollisionHandler(pelaaja1, "Klöntti", TormaaKlönttiin);
201        AddCollisionHandler(pelaaja1, "kuilu", PelaajaKuoli);
202        pelaaja1.AnimWalk = new Animation(PelaajanKavely);
203        pelaaja1.AnimWalk.FPS = 5;
204        pelaaja1.AnimIdle = new Animation(PelaajaPaikallaan);
205        Add(pelaaja1);
206    }
207
208    void lisaavihu(Vector paikka, double leveys, double korkeus)
209    {
210
211    }
212
213    void LisaaNappaimet()
214    {
215        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
216        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
217        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaPeli, null);
218
219        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
220        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
221        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
222
223        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
224
225        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
226        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
227        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
228
229        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
230    }
231
232    void Liikuta(PlatformCharacter hahmo, double nopeus)
233    {
234        hahmo.Walk(nopeus);
235    }
236
237    void Hyppaa(PlatformCharacter hahmo, double nopeus)
238    {
239        hahmo.Jump(nopeus);
240    }
241
242    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
243    {
244        maaliAani.Play();
245        tahti.Destroy();
246        pisteLaskuri.Value++;
247    }
248
249    void TormaaKlönttiin(PhysicsObject hahmo, PhysicsObject klöntti)
250    {
251        maaliAani.Play();
252        klöntti.Destroy();
253        pisteLaskuri1.Value++;
254
255        if(pisteLaskuri1.Value==3)
256        {
257            Seuraavakenttä();
258        }
259    }
260}
Note: See TracBrowser for help on using the repository browser.