source: 2012/27/NikoKa/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 3862

Revision 3862, 7.2 KB checked in by hniemi, 9 years ago (diff)

xbox ohjaimen lisäys ja jotain muuta.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter Nuunuu;
17
18    IntMeter elamat = new IntMeter(50);
19    IntMeter nuunuuElamat = new IntMeter(50);
20
21    Image pelaajanKuva = LoadImage("Spyro");
22    Image viholliskuva= LoadImage("Teletapit");
23    Image pääviholliskuva = LoadImage("Nuunuu");
24    Image timanttikuva = LoadImage("Timantti");
25
26    SoundEffect maaliAani = LoadSoundEffect("maali"); 
27
28    public override void Begin()
29    {
30        Gravity = new Vector(0, -1000);
31
32        LuoKentta();
33        LisaaNappaimet();
34
35        Camera.Follow(pelaaja1);
36        Camera.ZoomFactor = 1.2;
37        Camera.StayInLevel = true;
38    }
39   
40
41    void LuoKentta()
42    {
43        TileMap kentta = TileMap.FromLevelAsset("kentta1");
44        kentta.SetTileMethod('#', LisaaTaso);
45        kentta.SetTileMethod('T', LisaaTeletapit);
46        kentta.SetTileMethod('S', LisaaPelaaja);
47        kentta.SetTileMethod('N', LisaaNuunuu);
48        kentta.SetTileMethod('Y', LisaaTimantti);
49        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
50        Level.CreateBorders();
51        Level.Background.Image = LoadImage("Teletappimaa");
52
53        elamat.MaxValue = 50;
54        elamat.MinValue = 0;
55        elamat.LowerLimit += PelaajaKuolee;
56
57        nuunuuElamat.MaxValue = 50;
58        nuunuuElamat.MinValue = 0;
59        nuunuuElamat.LowerLimit += nuunuuKuolee;
60       
61        ProgressBar elamaPalkki = new ProgressBar(150, 20);
62        elamaPalkki.X = Screen.Left + 150;
63        elamaPalkki.Y = Screen.Top - 20;
64        elamaPalkki.Color = Color.Red;
65        elamaPalkki.BarColor = Color.LimeGreen;
66        elamaPalkki.BindTo(elamat);
67
68        ProgressBar elamaPalkki2 = new ProgressBar(150, 20);
69        elamaPalkki2.X = Screen.Right - 150;
70        elamaPalkki2.Y = Screen.Top - 20;
71        elamaPalkki2.Color = Color.MediumPurple;
72        elamaPalkki2.BarColor = Color.Black;
73        elamaPalkki2.BindTo(nuunuuElamat);
74       
75        Add(elamaPalkki);
76        Add(elamaPalkki2);
77    }
78
79    void LisaaTaso(Vector paikka, double leveys, double korkeus)
80    {
81        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
82        taso.Position = paikka;
83        taso.Color = Color.DarkGray;
84        Add(taso);
85    }   
86
87    void LisaaTeletapit(Vector paikka, double leveys, double korkeus)
88    {
89        PlatformCharacter Teletapit = new PlatformCharacter(leveys, korkeus);
90        //Teletapit.IgnoresCollisionResponse = true;
91        Teletapit.Position = paikka;
92        Teletapit.Image = viholliskuva;
93        Teletapit.Tag = "Teletapit";
94        Add(Teletapit);
95        //Teletapit.CollisionIgnoreGroup = 2;
96        PlatformWandererBrain aivo = new PlatformWandererBrain();
97        Teletapit.Brain = aivo;
98    }
99
100    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
101    {
102        pelaaja1 = new PlatformCharacter(leveys, korkeus);
103        pelaaja1.Position = paikka;
104        pelaaja1.Mass = 4.0;
105        pelaaja1.Image = pelaajanKuva;
106        pelaaja1.AnimWalk = new Animation(pelaajanKuva);
107        //pelaaja1.LeftWalkingAnimation = new Animation(Image.Mirror(pelaajanKuva));
108        AddCollisionHandler(pelaaja1, "Timantti", TormaaTahteen);
109        AddCollisionHandler(pelaaja1, "Teletapit", PelaajaanOsuu);
110
111       
112       
113       
114        pelaaja1.CollisionIgnoreGroup = 1;
115        Add(pelaaja1);
116    }
117
118    void PelaajaKuolee()
119    {
120        pelaaja1.Destroy();
121    }
122
123    void PelaajaanOsuu(PhysicsObject hahmo, PhysicsObject vihollinen)
124    {
125        elamat.Value--;
126    }
127
128    void nuunuuKuolee()
129    {
130        Nuunuu.Destroy();
131    }
132
133    void ammutulella()
134    {
135        PhysicsObject tuli = new PhysicsObject(10, 10);
136        tuli.Color = Color.OrangeRed;
137        Add(tuli);
138        tuli.Position = pelaaja1.Position;
139        tuli.IgnoresGravity = true;
140        Vector suunta = new Vector(pelaaja1.FacingDirection.GetVector().X * 200, 0);
141        tuli.Hit(suunta);
142        tuli.CollisionIgnoreGroup = 1;
143        tuli.MaximumLifetime = TimeSpan.FromSeconds(1.0);
144        AddCollisionHandler(tuli, "Teletapit", tuliosuu);
145        AddCollisionHandler(tuli, "Nuunuu", tuliosuuNuunuu);
146    }
147
148    void tuliosuu(PhysicsObject tuli, PhysicsObject Teletapit)
149    {
150        Teletapit.Destroy();
151    }
152
153    void tuliosuuNuunuu(PhysicsObject tuli, PhysicsObject Nuunuu)
154    {
155
156
157        nuunuuElamat.Value--;
158    }
159
160    void LisaaNuunuu(Vector paikka, double leveys, double korkeus)
161    {
162        Nuunuu = new PlatformCharacter(leveys, korkeus);
163        //Nuunuu.IgnoresCollisionResponse = true;
164        Nuunuu.Position = paikka;
165        Nuunuu.Image = pääviholliskuva;
166        Nuunuu.Tag = "Nuunuu";
167        Add(Nuunuu);
168        //Teletapit.CollisionIgnoreGroup = 2;
169        PlatformWandererBrain aivo = new PlatformWandererBrain();
170        Nuunuu.Brain = aivo;
171    }
172
173    void LisaaTimantti(Vector paikka, double leveys, double korkeus)
174    {
175        PhysicsObject Timantti = PhysicsObject.CreateStaticObject(leveys, korkeus);
176        Timantti.IgnoresCollisionResponse = true;
177        Timantti.Position = paikka;
178        Timantti.Image = timanttikuva;
179        Timantti.Tag = "Timantti";
180        Add(Timantti);
181    }
182
183    void LisaaNappaimet()
184    {
185        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
186        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
187        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
188
189        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
190        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
191        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
192        Keyboard.Listen(Key.Space, ButtonState.Down, ammutulella, "Ammu");
193
194        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
195
196        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
197        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
198        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
199        ControllerOne.Listen(Button.Y, ButtonState.Pressed, ammutulella, "Pelaaja ammutulella");
200
201
202        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
203    }
204
205    void Liikuta(PlatformCharacter hahmo, double nopeus)
206    {
207        hahmo.Walk(nopeus);
208    }
209
210    void Hyppaa(PlatformCharacter hahmo, double nopeus)
211    {
212        hahmo.Jump(nopeus);
213    }
214
215    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject Timantti)
216    {
217        maaliAani.Play();
218        MessageDisplay.Add("Keräsit Timantin!");
219        Timantti.Destroy();
220       
221       
222    }
223}   
224   
Note: See TracBrowser for help on using the repository browser.