source: 2016/27/EmiliaM/NinjaNight/NinjaNight/NinjaNight/NinjaNight.cs @ 7907

Revision 7907, 6.8 KB checked in by karkaite, 5 years ago (diff)

Eka kenttä valmis lisätään toka

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class NinjaNight : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    Pelaaja pelaaja1;
16    Pelaaja pelaaja2;
17    Vector aloitusPaikka;
18   
19
20    Image NinjaBlue = LoadImage("ninja1");
21    Image NinjaRed = LoadImage("Ninja2");
22    Image Talo = LoadImage("Kerrostalo");
23    Image Hirvio = LoadImage("laatikkoilkimys");
24    Image Spawn = LoadImage("Spawni");
25    Image timu = LoadImage("Timantti");
26    Image valikko = LoadImage("alkuvalikko");
27
28   
29
30    public override void Begin()
31    {
32       
33        GameObject tausta = new GameObject(Screen.Width, Screen.Height);
34        tausta.Image = valikko;
35        Add(tausta, -1);
36        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
37        "Aloita peli", "Lopeta");
38        alkuValikko.AddItemHandler(0, Aloita);
39        alkuValikko.AddItemHandler(1, Exit);
40        Add(alkuValikko);
41
42       
43           
44           
45
46           
47
48
49
50    }
51
52    void LuoKentta()
53    {
54
55        Gravity = new Vector(0, -1000);
56
57        TileMap kentta = TileMap.FromLevelAsset("kentta1");
58        kentta.SetTileMethod('#', LisaaTaso);
59        kentta.SetTileMethod('E', LisaaPelaaja2);
60        kentta.SetTileMethod('V', LisaaPelaaja);
61        kentta.SetTileMethod('H', LisaaHirvio);
62        kentta.SetTileMethod('T', LisaaTimantti);
63        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
64        Level.CreateBorders();
65       
66        Level.Background.CreateGradient(Color.Black, Color.BlueGray);
67
68        Camera.Follow(pelaaja1, pelaaja2);
69       // Camera.ZoomFactor = 2.0;
70        //Camera.StayInLevel = true;
71
72
73    }
74
75    void LisaaTaso(Vector paikka, double leveys, double korkeus)
76    {
77        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
78        taso.Position = paikka;
79        taso.Image = Talo;
80        Add(taso);
81    }
82
83
84
85    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
86    {
87        pelaaja1 = new Pelaaja(leveys * 0.7, korkeus * 0.7);
88        pelaaja1.Position = paikka;
89        pelaaja1.Mass = 4.0;
90        pelaaja1.Image = NinjaBlue;
91        AddCollisionHandler(pelaaja1, "hirvio", TormaaHirvioon);
92        AddCollisionHandler(pelaaja1, "timu", TormaaTimuun);
93        pelaaja1.elamat.LowerLimit += delegate
94        {
95            pelaaja1.Position = aloitusPaikka;
96            pelaaja1.elamat.Value = 3;
97       
98        };
99       
100
101
102        ProgressBar elamaPalkki = new ProgressBar(150, 20);
103        elamaPalkki.X =Screen.Left +150;
104        elamaPalkki.Y = Screen.Top -150;
105        elamaPalkki.BindTo(pelaaja1.elamat);
106        elamaPalkki.BarColor = Color.Red;
107
108        IsFullScreen = true;
109        Add(elamaPalkki);
110
111
112
113
114
115        Add(pelaaja1);
116
117        GameObject spawn = new GameObject(leveys *0.5, korkeus * 0.5);
118        spawn.Position = paikka;
119        spawn.Image = Spawn;
120        Add(spawn, 2);
121        aloitusPaikka = paikka;
122
123    }
124    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus)
125    {
126        pelaaja2 = new Pelaaja(leveys * 0.75, korkeus * 0.75);
127        pelaaja2.Position = paikka;
128        pelaaja2.Mass = 4.0;
129        pelaaja2.Image = NinjaRed;
130
131
132
133
134        AddCollisionHandler(pelaaja2, "hirvio", TormaaHirvioon);
135        AddCollisionHandler(pelaaja2, "timu", TormaaTimuun);
136        pelaaja2.elamat.LowerLimit += delegate
137        {
138            pelaaja2.Position = aloitusPaikka;
139            pelaaja2.elamat.Value = 3;
140        };
141
142
143        Add(pelaaja2);
144
145        ProgressBar elamaPalkki = new ProgressBar(150, 20);
146        elamaPalkki.X = Screen.Left + 350;
147        elamaPalkki.Y = Screen.Top - 150;
148        elamaPalkki.BindTo(pelaaja2.elamat);
149        elamaPalkki.BarColor = Color.Red;
150
151        IsFullScreen = true;
152        Add(elamaPalkki);
153
154
155    }
156
157
158
159
160    void LisaaNappaimet()
161    {
162        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
163        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
164
165        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
166        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
167        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
168        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
169        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
170        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
171
172
173
174
175
176    }
177
178    void Liikuta(PlatformCharacter hahmo, double nopeus)
179    {
180        hahmo.Walk(nopeus);
181    }
182
183    void Hyppaa(PlatformCharacter hahmo, double nopeus)
184    {
185        hahmo.Jump(nopeus);
186    }
187
188    void LisaaHirvio(Vector paikka, double leveys, double korkeus)
189    {
190        PlatformCharacter hirvio = new PlatformCharacter(leveys, korkeus);
191        hirvio.Position = paikka;
192        hirvio.Mass = 4.0;
193        hirvio.Image = Hirvio;
194        hirvio.Tag = "hirvio";
195        Add(hirvio);
196
197        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
198
199        hirvio.Brain = tasoAivot;
200   
201    }   
202
203    void TormaaHirvioon(PhysicsObject hahmo, PhysicsObject vihu)
204    {
205        Pelaaja pelaaja = hahmo as Pelaaja;
206        pelaaja.elamat.Value -= 1;
207       
208       
209    }
210    void TormaaTimuun(PhysicsObject hahmo, PhysicsObject timantti)
211    {
212        timantti.Destroy();
213        MessageDisplay.Add("Löysit timantin! Hyvin tehty!");
214        MultiSelectWindow valikko = new MultiSelectWindow("Kenttävalikko",
215        "Seuraava kenttä", "Lopeta");
216        Add(valikko);
217
218        valikko.AddItemHandler(0, SiirrySeuraavaanKenttaan);
219        valikko.AddItemHandler(1, Exit);
220
221
222         
223
224    }
225    void SiirrySeuraavaanKenttaan()
226    {
227        ClearAll();
228    }
229
230    void LisaaTimantti(Vector paikka, double leveys, double korkeus)
231    {
232        PhysicsObject timantti = new PhysicsObject (leveys * 0.45, korkeus * 0.45);
233        timantti.Position = paikka;
234        timantti.Mass = 2.0;
235        timantti.Image = timu;
236        timantti.Tag = ("timu");
237        Add(timantti);
238    }
239
240    void Aloita ()
241    {
242        LuoKentta();
243        LisaaNappaimet();
244    }
245   
246 
247
248   
249
250}
251
252public class Pelaaja : PlatformCharacter
253{
254    public IntMeter elamat;
255    public Pelaaja (double leveys, double korkeus)
256        : base(leveys, korkeus)
257    {
258        elamat = new IntMeter(3,0,3);
259       
260
261    }
262
263}
Note: See TracBrowser for help on using the repository browser.