source: 2012/30/AntonN/taso2/taso2/taso2/taso2.cs @ 3804

Revision 3804, 7.4 KB checked in by sieerinn, 8 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 taso2 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14    Image taustaKuva = LoadImage("trolli");
15    IntMeter pisteLaskuri;
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("örkki mörkki");
19    Image Hyppy = LoadImage("örkki");
20    Image tahtiKuva = LoadImage("tahti");
21    Image PiikkiKuva = LoadImage("piikit");
22    Image[] örkkiiKuvat = LoadImages("juoksu1", "juoksu2.");
23    Image tasokuva = LoadImage("plokki");
24    Image maalikuva = LoadImage("maali");
25
26    int kentta = 1;
27
28    public override void Begin()
29    {
30        AlkuValikko();
31    }
32
33    void AlkuValikko()
34    {
35        ClearAll();
36        MediaPlayer.Play("troll");
37        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
38        "Aloita peli", "Lopeta");
39        Add(alkuValikko);
40        alkuValikko.DefaultCancel = 2;
41        alkuValikko.DefaultCancel = -1;
42        alkuValikko.Color = Color.Red;
43        alkuValikko.ItemSelected += PainettiinValikonNappia;
44        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli");
45    }
46
47    void KenttäValikko()
48     {
49         ClearAll();
50         MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
51         "Kenttä 1", "Kenttä 2", "Lopeta");
52         Add(alkuValikko);
53         alkuValikko.DefaultCancel = 2;
54         alkuValikko.DefaultCancel = -1;
55         alkuValikko.DefaultCancel = -2;
56         alkuValikko.Color = Color.Red;
57         alkuValikko.ItemSelected += kenttävalikko;
58         Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli");
59     }
60
61
62   void PainettiinValikonNappia(int valinta)
63    {
64        switch (valinta)
65        {
66            case 0:
67                KenttäValikko();
68                break;
69            case 1:
70                Exit();
71                break;
72        }
73    }
74
75   void kenttävalikko(int valinta)
76   {
77       pisteLaskuri = new IntMeter(-1, -1, 100);
78       if (valinta == 2)
79       {
80           Exit();
81       }
82       else
83       {
84           kentta = valinta + 1;
85           AloitaPeli();
86       }
87
88       
89   }
90
91    void AloitaPeli()
92    {
93        ClearAll();
94        Gravity = new Vector(0, -1000);
95
96        LuoKentta(kentta);
97        LisaaNappaimet();
98        LuoPistelaskuri();
99        pisteLaskuri.Value++;
100
101
102       
103
104        Camera.Follow(pelaaja1);
105        Camera.ZoomFactor = 1.2;
106        Camera.StayInLevel = true;
107    }
108
109    void LuoKentta(int nro)
110    {
111        TileMap kentta = TileMap.FromLevelAsset("kentta"+nro);
112        kentta.SetTileMethod('#', LisaaTaso);
113        kentta.SetTileMethod('*', LisaaTahti);
114        kentta.SetTileMethod('N', LisaaPelaaja);
115        kentta.SetTileMethod('P', LisaaPiikki);
116        kentta.SetTileMethod('M', Lisaamaali);
117        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
118        Level.CreateBorders();
119
120        Layers[-3].RelativeTransition = new Vector(0.0, 0.0);
121        Layers[-3].IgnoresZoom = true;
122
123        Level.Background.Image = taustaKuva;
124        Level.Background.MovesWithCamera = false;
125        Level.Background.Position = pelaaja1.Position;
126
127        if (nro == 1) MediaPlayer.Play("paradise");
128        if (nro == 2) MediaPlayer.Play("hell");
129    }
130
131    void LisaaTaso(Vector paikka, double leveys, double korkeus)
132    {
133        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
134        taso.Position = paikka;
135        taso.Image = tasokuva;
136        Add(taso);
137    }
138
139    void LisaaTahti(Vector paikka, double leveys, double korkeus)
140    {
141        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
142        tahti.IgnoresCollisionResponse = true;
143        tahti.Position = paikka;
144        tahti.Image = tahtiKuva;
145        tahti.Tag = "tahti";
146        Add(tahti);
147    }
148    void Lisaamaali(Vector paikka, double leveys, double korkeus)
149    {
150    PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
151   maali.IgnoresCollisionResponse = true;
152   maali.Position = paikka;
153   maali.Image = maalikuva;
154   maali.Tag = "maali";
155   Add(maali);
156       
157
158
159    }
160
161    void LuoPistelaskuri()
162    {
163        Label pisteNaytto = new Label();
164        pisteNaytto.X = Screen.Left + 100;
165        pisteNaytto.Y = Screen.Top - 100;
166        pisteNaytto.TextColor = Color.Black;
167        pisteNaytto.Color = Color.White;
168
169        pisteNaytto.BindTo(pisteLaskuri);
170        Add(pisteNaytto);
171
172    }
173
174
175    void Tormaamaaliin(PhysicsObject hahmo, PhysicsObject maali)
176    {
177        MessageDisplay.Add("Pääsitmaaliin");
178        kentta++;
179        AlkuValikko();
180    }
181
182
183    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
184    {
185        pelaaja1 = new PlatformCharacter(leveys, korkeus *1.5);
186        pelaaja1.Position = paikka;
187        pelaaja1.Mass = 4.0;
188        pelaaja1.Image = pelaajanKuva;
189        pelaaja1.AnimJump = new Animation(Hyppy);
190        pelaaja1.AnimWalk = new Animation(örkkiiKuvat);
191        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
192        AddCollisionHandler(pelaaja1, "maali", Tormaamaaliin);
193        Add(pelaaja1);
194        AddCollisionHandler(pelaaja1, "piikki", TormaaPiikkiin);
195        pelaaja1.Animation = new Animation(örkkiiKuvat);
196
197    }
198
199    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
200    {
201        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
202        piikki.IgnoresCollisionResponse = true;
203        piikki.Position = paikka;
204        piikki.Image = PiikkiKuva;
205        piikki.Tag = "piikki";
206        Add(piikki);
207    }
208
209
210    void LisaaNappaimet()
211    {
212        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
213        //Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
214        Keyboard.Listen(Key.Escape, ButtonState.Pressed, AlkuValikko, "Lopeta peli");
215
216        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
217
218       // Keyboard.Listen(Key.Up, ButtonState.Pressed,
219
220        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaPeli, "Pelaaja kuolee");
221
222        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
223
224        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
225
226        //Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
227
228        //Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Exit, null);
229       
230        //Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
231
232    }
233
234    void Liikuta(PlatformCharacter hahmo, double nopeus)
235    {
236        hahmo.Walk(nopeus);
237    }
238
239    void Hyppaa(PlatformCharacter hahmo, double nopeus)
240    {
241        hahmo.Jump(nopeus);
242    }
243
244    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
245    {
246       
247        MessageDisplay.Add("Keräsit tähden!");
248        tahti.Destroy();
249    }
250
251    void TormaaPiikkiin(PhysicsObject hahmo, PhysicsObject piikki)
252    {
253        AloitaPeli();
254    }
255
256    protected override void Update(Time time)
257    {
258        if(pelaaja1!=null)
259            pelaaja1.Walk(340);
260        base.Update(time);
261    }
262   
263
264
265}
Note: See TracBrowser for help on using the repository browser.