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

Revision 7884, 5.5 KB checked in by karkaite, 3 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 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 Spawn2 = LoadImage("Spawni2");
26
27   
28
29    public override void Begin()
30    {
31        Gravity = new Vector(0, -1000);
32
33        LuoKentta();
34        LisaaNappaimet();
35
36        Camera.Follow(pelaaja1);
37        Camera.ZoomFactor = 2.0;
38        Camera.StayInLevel = true;
39    }
40
41    void LuoKentta()
42    {
43        TileMap kentta = TileMap.FromLevelAsset("kentta1");
44        kentta.SetTileMethod('#', LisaaTaso);
45        kentta.SetTileMethod('E', LisaaPelaaja2);
46        kentta.SetTileMethod('V', LisaaPelaaja);
47        kentta.SetTileMethod('H', LisaaHirvio);
48        kentta.SetTileMethod('S', LisaaSpawn);
49        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
50        Level.CreateBorders();
51        Camera.ZoomToAllObjects();
52        Level.Background.CreateGradient(Color.Black, Color.BlueGray);
53    }
54
55    void LisaaTaso(Vector paikka, double leveys, double korkeus)
56    {
57        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
58        taso.Position = paikka;
59        taso.Image = Talo;
60        Add(taso);
61    }
62
63
64
65    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
66    {
67        pelaaja1 = new Pelaaja(leveys * 0.7, korkeus * 0.7);
68        pelaaja1.Position = paikka;
69        pelaaja1.Mass = 4.0;
70        pelaaja1.Image = NinjaBlue;
71        AddCollisionHandler(pelaaja1, "hirvio", TormaaHirvioon);
72        pelaaja1.elamat.LowerLimit += delegate
73        {
74            pelaaja1.Position = aloitusPaikka;
75            pelaaja1.elamat.Value = 3;
76       
77        };
78       
79
80
81        ProgressBar elamaPalkki = new ProgressBar(150, 20);
82        elamaPalkki.X =Screen.Left +150;
83        elamaPalkki.Y = Screen.Top -150;
84        elamaPalkki.BindTo(pelaaja1.elamat);
85        elamaPalkki.BarColor = Color.Red;
86
87        IsFullScreen = true;
88        Add(elamaPalkki);
89
90
91
92
93
94        Add(pelaaja1);
95
96        GameObject spawn = new GameObject(leveys *0.5, korkeus * 0.5);
97        spawn.Position = paikka;
98        spawn.Image = Spawn;
99        Add(spawn, 2);
100        aloitusPaikka = paikka;
101
102    }
103    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus)
104    {
105        pelaaja2 = new Pelaaja(leveys * 0.75, korkeus * 0.75);
106        pelaaja2.Position = paikka;
107        pelaaja2.Mass = 4.0;
108        pelaaja2.Image = NinjaRed;
109 
110
111
112        AddCollisionHandler(pelaaja2, "hirvio", TormaaHirvioon);
113        pelaaja2.elamat.LowerLimit += delegate
114        {
115            pelaaja2.Position = aloitusPaikka;
116            pelaaja2.elamat.Value = 3;
117        };
118
119
120        Add(pelaaja2);
121
122        ProgressBar elamaPalkki = new ProgressBar(150, 20);
123        elamaPalkki.X = Screen.Left + 350;
124        elamaPalkki.Y = Screen.Top - 150;
125        elamaPalkki.BindTo(pelaaja2.elamat);
126        elamaPalkki.BarColor = Color.Red;
127
128        IsFullScreen = true;
129        Add(elamaPalkki);
130
131
132    }
133
134
135
136
137    void LisaaNappaimet()
138    {
139        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
140        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
141
142        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
143        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
144        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
145        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
146        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
147        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
148
149
150
151
152
153    }
154
155    void Liikuta(PlatformCharacter hahmo, double nopeus)
156    {
157        hahmo.Walk(nopeus);
158    }
159
160    void Hyppaa(PlatformCharacter hahmo, double nopeus)
161    {
162        hahmo.Jump(nopeus);
163    }
164
165    void LisaaHirvio(Vector paikka, double leveys, double korkeus)
166    {
167        PlatformCharacter hirvio = new PlatformCharacter(leveys, korkeus);
168        hirvio.Position = paikka;
169        hirvio.Mass = 4.0;
170        hirvio.Image = Hirvio;
171        hirvio.Tag = "hirvio";
172        Add(hirvio);
173
174        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
175
176        hirvio.Brain = tasoAivot;
177   
178    }   
179
180    void TormaaHirvioon(PhysicsObject hahmo, PhysicsObject vihu)
181    {
182        Pelaaja pelaaja = hahmo as Pelaaja;
183        pelaaja.elamat.Value -= 1;
184       
185       
186    }
187
188    void LisaaSpawn(Vector paikka, double leveys, double korkeus)
189    {
190        PhysicsObject Spawn = new PhysicsObject(leveys * 0.5, korkeus * 0.5);
191        //Spawn.Position
192    }
193                   
194
195 
196
197   
198
199}
200
201public class Pelaaja : PlatformCharacter
202{
203    public IntMeter elamat;
204    public Pelaaja (double leveys, double korkeus)
205        : base(leveys, korkeus)
206    {
207        elamat = new IntMeter(3,0,3);
208       
209
210    }
211
212}
Note: See TracBrowser for help on using the repository browser.