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

Revision 8211, 6.8 KB checked in by eeanpulk, 3 years ago (diff)

MIKS MÄ EN MUISTA MITÄ LISÄSIN, JUMALAUTA!

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