source: 2010/27/alelaho/Insane Darkness/Peli.cs @ 1177

Revision 1177, 5.1 KB checked in by alelaho, 10 years ago (diff)

Muokattu hiukan Insane Shadowta

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5using Jypeli.Widgets;
6
7public class Peli : PhysicsGame
8{
9
10    const double nopeus = 200;
11    const double hyppyVoima = 400;
12
13    const int ruudunLeveys = 50;
14    const int ruudunKorkeus = 50;
15
16    Vector nopeusOikea = new Vector(200, 0);
17    Vector nopeusVasen = new Vector(-200, 0);
18
19    PhysicsObject loota;
20    PhysicsObject ninja;
21
22
23
24    protected override void Begin()
25    {
26       
27        LuoKentta();
28        Peliohjaus();
29        PelaajaYksi();
30        PelaajaKaksi();
31        Gravity = new Vector(0.0, -800.0);
32        Camera.Zoom(0.50);
33        LuoAikaLaskuri();
34        Camera.StayInLevel = false;
35       
36    }
37
38    void PelaajaYksi() //Samurain luonti
39    {
40        loota = new PhysicsObject(266.0, 688.0);
41        loota.X = 0.0;
42        loota.Y = 0.0;
43        loota.Image = LoadImage("Animaatio1");
44        loota.KineticFriction = 0.0;
45        loota.CanRotate = false;
46        loota.Mass = 1.0;
47        Add(loota);
48       
49    }
50
51    void PelaajaKaksi() //Ninjan luonti
52    {
53        ninja = new PhysicsObject(214, 652);
54        ninja.X = -100;
55        ninja.Y = 0;
56        ninja.Image = LoadImage("ninja");
57        ninja.KineticFriction = 0.0;
58        ninja.CanRotate = false;
59        Add(ninja);
60    }
61
62    void Peliohjaus() //Pelaajien 1 ja 2 ohjauskomennot!
63    {
64        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(-1000, 0));
65        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(1000, 0));
66        Keyboard.Listen(Key.Up, ButtonState.Pressed, HypytaPelaajaa1, null, new Vector(0, 1500));
67       
68
69
70
71        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-1000, 0));
72        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(1000, 0));
73        Keyboard.Listen(Key.W, ButtonState.Pressed, LiikutaPelaajaa2, null, new Vector(0, 1500));
74       
75
76
77        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(-1000, 0));
78        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(1000, 0));
79        ControllerOne.Listen(Button.DPadUp, ButtonState.Pressed, LiikutaPelaajaa1, null, new Vector(0, 1500));
80       
81        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
82
83
84        ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-1000, 0));
85        ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(1000, 0));
86        ControllerTwo.Listen(Button.DPadUp, ButtonState.Pressed, LiikutaPelaajaa2, null, new Vector(0, 1500));
87
88        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaaX2, "Liikuta pelaajaa tattia pyörittämällä.");
89       
90
91    }
92
93    void LiikutaPelaajaa1(Vector vektori)
94    {
95        loota.Push(vektori);
96    }
97
98    void LiikutaPelaajaa2(Vector vektori)
99    {
100        ninja.Push(vektori);
101    }
102
103    void LuoKentta()
104    {
105
106        TileMap ruudut = TileMap.FromFile("Taso.txt");
107        ruudut['='] = LuoPalikka;
108        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
109       
110    }
111
112    PhysicsObject LuoPalikka()
113    {
114        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
115        palikka.Shape = Shapes.Rectangle;
116        palikka.Color = Color.Gray;
117        return palikka;
118    }
119
120
121
122    DoubleMeter alaspainLaskuri;
123
124    void LuoAikaLaskuri()
125    {
126        alaspainLaskuri = new DoubleMeter(120);
127
128        Timer aikaLaskuri = new Timer();
129        aikaLaskuri.Interval = 0.1;
130        aikaLaskuri.Trigger += LaskeAlaspain;
131        Add(aikaLaskuri);
132        aikaLaskuri.Start();
133
134        Label aikaNaytto = new Label();
135        aikaNaytto.TextColor = Color.White;
136        aikaNaytto.DecimalPlaces = 0;
137        aikaNaytto.BindTo(alaspainLaskuri);
138        Add(aikaNaytto);
139    }
140
141    void LaskeAlaspain(Timer timer)
142    {
143        alaspainLaskuri.Value -= 0.1;
144
145        if (alaspainLaskuri.Value <= 0)
146        {
147            MessageDisplay.Add("TIME");
148            timer.Stop();
149
150            // täydennä mitä tapahtuu, kun aika loppuu
151           
152        }
153    }
154
155    void LiikutaPelaajaa(AnalogState tatinTila)
156    {
157        Vector tatinAsento = tatinTila.StateVector;
158        tatinAsento.X = tatinAsento.X * 1000;
159        tatinAsento.Y = tatinAsento.Y * 1000;
160        loota.Push(tatinAsento);
161    }
162
163    void LiikutaPelaajaaX2(AnalogState tatinTila)
164    {
165        Vector tatinAsento = tatinTila.StateVector;
166        tatinAsento.X = tatinAsento.X * 1000;
167        tatinAsento.Y = tatinAsento.Y * 1000;
168        ninja.Push(tatinAsento); 
169    }
170
171    void HypytaPelaajaa1(Vector pomppu1)
172    {
173        if (loota.Y - 400 < Level.Bottom)
174        {
175            loota.Hit(pomppu1);
176        }
177    }
178
179    void HypytaPelaajaaX2(Vector pomppu1)
180    {
181        if (ninja.Y - 318 < Level.Bottom)
182        {
183            ninja.Hit(pomppu1);
184        }
185    }
186
187 
188
189
190
191   
192 }
193
Note: See TracBrowser for help on using the repository browser.