source: 2016/30/EeroP/NinjaInTheDarkLight/NinjaInTheDarkLight/NinjaInTheDarkLight/NinjaInTheDarkLight.cs @ 8238

Revision 8238, 8.3 KB checked in by eeanpulk, 5 years ago (diff)

Viimeistelin pelin lisäämällä graffoi ääniä ja korjaamalla sen bugin

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class NinjaInTheDarkLight : PhysicsGame
10{
11    Image ninjankuva = LoadImage("ninja");
12    Image demoninkuva = LoadImage("demoni");
13
14    private Image[] ninjanhyppy = LoadImages("ninjahyppy");
15    private Image[] ninjansyoksys = LoadImages("ninjasyoksys");
16    private Image[] ninjanfall = LoadImages("ninjafall");
17    private Animation ninjasyoksy;
18
19
20    SoundEffect tappoAani = LoadSoundEffect("Hit");
21    Vector nopeusOikealle = new Vector(600, 0);
22    Vector nopeusVasemmalle = new Vector(-600, 0);
23
24    PlatformCharacter ninja;
25    PhysicsObject lattia;
26    PhysicsObject tappolattia;
27    PhysicsObject ylaReuna;
28    PhysicsObject oikeaReuna;
29    PhysicsObject vasenReuna;
30    IntMeter pisteLaskuri;
31    int hypyt = 2;
32   
33   
34
35
36    public override void Begin()
37    {
38        MessageDisplay.Add("Musiikki: Toby Fox");
39
40        MultiSelectWindow valikko = new MultiSelectWindow("Ninja In The Dark Light", "Aloita peli", "Laulu 1", "Laulu 2", "Laulu 3", "Laulu 4", "Laulu 5", "Laulu 6", "Lopeta");
41        valikko.ItemSelected += PainettiinValikonNappia;
42        valikko.Color = Color.Purple;
43        Add(valikko);
44
45    }
46
47    protected override void Update(Time time)
48    {
49        base.Update(time);
50
51        if (ninja == null)
52            return;
53
54        if(ninja.Left < vasenReuna.Right)
55        {
56            ninja.Left = vasenReuna.Right;
57        }
58        if (ninja.Right > oikeaReuna.Left)
59        {
60            ninja.Right = oikeaReuna.Left;
61        }
62        if(ninja.Top > ylaReuna.Bottom)
63        {
64            ninja.Top = ylaReuna.Bottom;
65        }
66    }
67    void LuoNinja()
68    {
69        ninja = new PlatformCharacter(30, 50, Shape.Rectangle);
70        ninja.Color = Color.Black;
71        Add(ninja);
72        ninja.X = Level.Left + 20.0;
73        ninja.Y = Level.Bottom + 100.0;
74        ninja.Restitution = 0.0;
75        ninja.CanRotate = false;
76        ninja.Tag = "pelaaja";
77        ninja.Image = ninjankuva;
78        ninja.AnimJump = new Animation(ninjanhyppy);
79        ninja.AnimFall = new Animation(ninjanfall);
80        AddCollisionHandler(ninja, "vihu", PelaajaTormaa);
81        AddCollisionHandler(ninja, "tappolattia", CollisionHandler.DestroyObject);
82
83    }
84    void LuoDemoni()
85    {
86        PhysicsObject demoni = new PhysicsObject(70, 70, Shape.Circle);
87        demoni.Color = Color.BloodRed;
88        Add(demoni);
89        demoni.X = RandomGen.NextDouble(Level.Left + 100, Level.Right - 100);
90        demoni.Y = RandomGen.NextDouble(Level.Bottom + 100, Level.Top - 100);
91        Vector impulssi = new Vector(-350.0, 0.0);
92        demoni.Hit(impulssi);
93        demoni.Restitution = 100.0;
94        demoni.CollisionIgnoreGroup = 4;
95        demoni.IgnoresGravity = true;
96        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(350);
97        satunnaisAivot.ChangeMovementSeconds = 1;
98        demoni.Brain = satunnaisAivot;
99        demoni.Tag = "vihu";
100        demoni.Image = demoninkuva;
101
102    }
103    void LuoKentta()
104    {
105        vasenReuna = PhysicsObject.CreateStaticObject(10000.0, Level.Height + 100000);
106        Add(vasenReuna);
107        vasenReuna.Right = Level.Left;
108        oikeaReuna = PhysicsObject.CreateStaticObject(100000.0, Level.Height + 100000);
109        Add(oikeaReuna);
110        oikeaReuna.Left = Level.Right;
111        ylaReuna = PhysicsObject.CreateStaticObject(Level.Width + 100000, 100000.0);
112        Add(ylaReuna);
113        ylaReuna.Bottom = Level.Top;
114        tappolattia = Level.CreateBottomBorder(0.0, true);
115        tappolattia.Tag = "tappolattia";
116        tappolattia.Color = Color.Red;
117        //tappolattia.Y = Level.Bottom - 75;
118        lattia = LuoLattia();
119        Level.Background.Color = Color.SkyBlue;
120
121        luopistelaskuri();
122    }
123    void AsetaOhjaimet()
124    {
125        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
126        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Liiku oikealle", ninja, nopeusOikealle);
127        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Liiku vasemmalle", ninja, nopeusVasemmalle);
128        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäytä peli");
129        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppy, "Hyppää", ninja, 1200.0);
130        Keyboard.Listen(Key.LeftShift, ButtonState.Released, Palauta, null, ninja);
131        Keyboard.Listen(Key.LeftShift, ButtonState.Down, SyoksyS, "Syöksy sivulle", ninja, 2000.0);
132        Keyboard.Listen(Key.S, ButtonState.Down, SyoksyA, "Syöksy alas", ninja, 750.0);
133        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
134    }
135    void AsetaNopeus(PlatformCharacter ninja, Vector nopeus)
136    {
137        ninja.Walk(nopeus.X);
138    }
139    void PelaajaTormaa(PhysicsObject pelaaja, PhysicsObject pahis)
140    {
141        if (Math.Abs(pelaaja.Velocity.X)>1500)
142        {
143            hypyt = 2;
144            pahis.Destroy();
145            tappoAani.Play();
146            pisteLaskuri.Value++;
147            LuoDemoni();
148           
149            return;
150        }
151        pelaaja.Destroy();
152        MessageDisplay.Add("SINÄ KUOLIT");
153        MediaPlayer.Play("Determination");
154   
155    }
156    void Hyppy(PlatformCharacter ninja, Double nopeus)
157    {
158        if (hypyt > 0)
159        {
160            ninja.ForceJump(nopeus);
161            hypyt--;
162        }
163        if (lattia != null)
164        {
165            lattia.Destroy();
166        }
167        //Hyppy.Image = ninjahyppykuva;
168    }
169    void PainettiinValikonNappia(int valinta)
170    {
171        switch (valinta)
172        {
173            case 0:
174                AloitaPeli("");
175                break;
176            case 1:
177                //Laulu 1
178                AloitaPeli("Core");
179                break;
180            case 2:
181                //Laulu 2
182                AloitaPeli("DatingF");
183                break;
184            case 3:
185                //Laulu 3
186                AloitaPeli("Dummy");
187                break;
188            case 4:
189                //Laulu 4
190                AloitaPeli("EnemyA");
191                break;
192            case 5:
193                //Laulu5
194                AloitaPeli("Neo");
195                break;
196            case 6:
197                //laulu6
198                AloitaPeli("Stronger");
199                break;
200            case 7:
201                Exit();
202                break;
203        }
204    }
205        void SyoksyS(PlatformCharacter ninja, double nopeus)
206        {
207        /*
208        ninja.Animation = ninjasyoksy;
209        ninja.Animation.Start();*/
210        ninja.AnimFall = null;
211        ninja.AnimJump = null;
212
213        ninja.Image = ninjansyoksys[0];
214       
215        ninja.Width = 50;
216        ninja.Height = 30;
217        ninja.Walk(ninja.FacingDirection.GetVector().Normalize().X * nopeus);
218        }
219        void SyoksyA(PlatformCharacter ninja, double nopeus)
220    {
221        Vector impullsi = new Vector(0.0, -nopeus);
222        ninja.Hit(impullsi);
223    }
224    PhysicsObject LuoLattia()
225    {
226        PhysicsObject lattia = PhysicsObject.CreateStaticObject(Level.Width, 50.0);
227        lattia.Y = Level.Bottom + 5.0;
228        Add(lattia);
229        return lattia;
230    }
231    void luopistelaskuri()
232    {
233        pisteLaskuri = new IntMeter(0);
234
235        Label pistenaytto = new Label();
236        pistenaytto.X = Screen.Right - 150;
237        pistenaytto.Y = Screen.Top - 100;
238        pistenaytto.TextColor = Color.Black;
239        pistenaytto.Color = Color.White;
240        pistenaytto.Title = "demoneja tapettu";
241
242        pistenaytto.BindTo(pisteLaskuri);
243        Add(pistenaytto);
244    }
245    void AloitaPeli(String kappale)
246    {
247        if(kappale.Length > 1)
248        {
249            MediaPlayer.Play(kappale);
250            MediaPlayer.IsRepeating = true;
251        }
252        ninjasyoksy = new Animation(ninjansyoksys);
253        LuoNinja();
254        LuoDemoni();
255        LuoDemoni();
256        LuoKentta();
257        AsetaOhjaimet();
258
259        Gravity = new Vector(0.0, -800.0);
260    }
261    void Palauta(PlatformCharacter ninja)
262    {
263        ninja.Height = 50;
264        ninja.Width = 30;
265        ninja.AnimFall = new Animation(ninjanfall);
266        ninja.AnimJump = new Animation(ninjanhyppy);
267    }
268}
Note: See TracBrowser for help on using the repository browser.