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

Revision 8194, 6.4 KB checked in by eeanpulk, 3 years ago (diff)

lisäsin asioita

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