source: 2015/30/EliasHu/RescueRanger/RescueRanger/RescueRanger/RescueRanger.cs @ 6910

Revision 6910, 7.1 KB checked in by elalhutt, 6 years ago (diff)

peli

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class RescueRanger : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 40;
13    const int RUUDUN_KOKO = 40;
14
15    Label pisteNaytto;
16    IntMeter pistelaskuri;
17    int kenttanumero = 1;
18
19   
20    IntMeter pisteLaskuri2;
21
22    PlatformCharacter pelaaja1;
23
24
25    Image tukki = LoadImage("log");
26    Image lehti = LoadImage("leaf");
27    Image taustaKuva = LoadImage("america");
28    Image pelaajanKuva = LoadImage("mediheli");
29    Image tahtiKuva = LoadImage("tahti");
30    Image elain = LoadImage("elain");
31    Image ranger = LoadImage("ranger");
32
33    SoundEffect maaliAani = LoadSoundEffect("maali");
34
35    public override void Begin()
36    {
37        pisteLaskuri2 = new IntMeter(0);
38        aloitapeli();
39    }
40
41    void aloitapeli()
42    {
43        ClearAll();
44        Gravity = new Vector(0, -1000);
45
46        LuoPisteLaskuri();
47        LuoPistelaskuri2();
48        LuoKentta();
49        LisaaNappaimet();
50
51
52        Camera.Follow(pelaaja1);
53        Camera.ZoomFactor = 1.2;
54        Camera.StayInLevel = true;
55    }
56
57    void LuoKentta()
58    {
59        pistelaskuri.MaxValue = 0;
60        TileMap kentta = TileMap.FromLevelAsset("kentta"+kenttanumero);
61        kentta.SetTileMethod('#', LisaaTaso);
62        kentta.SetTileMethod('i', LisaaTaso2);
63        kentta.SetTileMethod('*', LisaaElain);
64        kentta.SetTileMethod('=', LisaaTurva);
65        kentta.SetTileMethod('N', LisaaPelaaja);
66        kentta.SetTileMethod('t', LisaaMaali);
67        kentta.SetTileMethod('u', LisaaTalo);
68        kentta.SetTileMethod('r', LisaaRanger);
69        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
70        Level.CreateBorders();
71        Level.Background.Image = taustaKuva;
72        GameObject tausta = new GameObject(Level.Width, Level.Height);
73        tausta.Image = taustaKuva;
74        Add(tausta,-3);
75
76        pisteNaytto.IntFormatString = "{0} / " + pistelaskuri.MaxValue;
77
78    }
79
80    void LisaaTaso(Vector paikka, double leveys, double korkeus)
81    {
82        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
83        taso.Position = paikka;
84        taso.Color = Color.Green;
85        taso.Image = lehti;
86        taso.Tag = "Puu";
87        Add(taso);
88    }
89
90    void LisaaTaso2(Vector paikka, double leveys, double korkeus)
91    {
92        GameObject taso2 = new GameObject(leveys, korkeus);
93        taso2.Position = paikka;
94         taso2.Image = lehti;
95        Add(taso2);
96    }
97
98    void LisaaRanger(Vector paikka, double leveys, double korkeus)
99    {
100        GameObject ranger = new GameObject(leveys, korkeus);
101        ranger.Position = paikka;
102         ranger.Image = ranger;
103        Add(ranger);
104    }
105
106
107    void LisaaTalo(Vector paikka, double leveys, double korkeus)
108    {
109        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
110        talo.Position = paikka;
111        talo.Image = tukki;
112        talo.Tag = "Puu";
113        Add(talo);
114
115    }
116
117
118    void LisaaTurva(Vector paikka, double leveys, double korkeus)
119    {
120        PhysicsObject turva = PhysicsObject.CreateStaticObject(leveys, korkeus);
121        turva.Position = paikka;
122        turva.Color = Color.Brown;
123        Add(turva);
124    }
125
126    void LisaaMaali(Vector paikka, double leveys, double korkeus)
127    {
128        PhysicsObject Maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
129        Maali.Position = paikka;
130        Maali.Color = Color.Brown;
131        Maali.Tag = "maali";
132        Add(Maali);
133    }
134
135    void LisaaElain(Vector paikka, double leveys, double korkeus)
136    {
137        PhysicsObject Elain = PhysicsObject.CreateStaticObject(leveys, korkeus);
138        Elain.IgnoresCollisionResponse = true;
139        Elain.Position = paikka;
140        Elain.Image = elain;
141        Elain.Tag = "Elain";
142        Add(Elain);
143
144        pistelaskuri.MaxValue++;
145    }
146
147    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
148    {
149        pelaaja1 = new PlatformCharacter(leveys, korkeus);
150        pelaaja1.Position = paikka;
151        pelaaja1.Mass = 400;
152        pelaaja1.Image = pelaajanKuva;
153        AddCollisionHandler(pelaaja1, "Elain", TormaaElaimeen);
154        AddCollisionHandler(pelaaja1, "Puu", TormaaPuuhun);
155        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
156        Add(pelaaja1);
157    }
158
159    void LisaaNappaimet()
160    {
161        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
162        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
163
164        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
165        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
166        Keyboard.Listen(Key.Space, ButtonState.Down, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
167
168        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
169
170        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
171        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
172        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
173
174        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
175    }
176
177    void Liikuta(PlatformCharacter hahmo, double nopeus)
178    {
179        hahmo.Walk(nopeus);
180    }
181
182    void Hyppaa(PlatformCharacter hahmo, double nopeus)
183    {
184        hahmo.ForceJump(nopeus);
185    }
186
187    void TormaaElaimeen(PhysicsObject hahmo, PhysicsObject Elain)
188    {
189        maaliAani.Play();
190        MessageDisplay.Add("Keräsit eläimen!");
191        pistelaskuri.Value += 1;
192        Elain.Destroy();
193    }
194
195    void TormaaMaaliin(PhysicsObject hahmo, PhysicsObject maali)
196    {
197        if (pistelaskuri.Value == pistelaskuri.MaxValue)
198        {
199           
200            kenttanumero++;
201            aloitapeli();
202        }
203    }
204    void TormaaPuuhun(PhysicsObject hahmo, PhysicsObject Puu)
205    {
206        pisteLaskuri2.Value += 1;
207        aloitapeli();
208    }
209
210    void LuoPisteLaskuri()
211    {
212        pistelaskuri = new IntMeter(0);
213
214        pisteNaytto = new Label("");
215        pisteNaytto.X = Screen.Left + 100;
216        pisteNaytto.Y = Screen.Top - 100;
217        pisteNaytto.TextColor = Color.Black;
218        pisteNaytto.Color = Color.White;
219        pisteNaytto.Title = "eläimet";
220
221        pisteNaytto.BindTo(pistelaskuri);
222        Add(pisteNaytto);
223    }
224
225   void LuoPistelaskuri2()
226    {
227       
228
229        Label pisteNaytto2 = new Label();
230        pisteNaytto2.X = Screen.Right - 100;
231        pisteNaytto2.Y = Screen.Top - 100;
232        pisteNaytto2.TextColor = Color.Black;
233        pisteNaytto2.Color = Color.White;
234        pisteNaytto2.Title = "yritykset";
235        pisteNaytto2.IntFormatString = ": {0:D3}";
236
237
238        pisteNaytto2.BindTo(pisteLaskuri2);
239        Add(pisteNaytto2);
240    }
241
242}
Note: See TracBrowser for help on using the repository browser.