source: 2015/30/SamuliP/TheSidescrollsArena/TheSideScrolls/TheSideScrolls/TheSideScrolls/TheSideScrolls.cs @ 6994

Revision 6994, 8.7 KB checked in by samsimpo, 6 years ago (diff)

bess gem in uranus

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class TheSideScrolls : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    DoubleMeter elamaLaskuri;
16    IntMeter ammustenmaara = new IntMeter(0, 0, 25);
17    PlatformCharacter pelaaja1;
18
19    Image pelaajanKuva = LoadImage("shoulder");
20    Image tahtiKuva = LoadImage("gem");
21    Image topdirtKuva = LoadImage("topdirt");
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23    Image downdirtKuva = LoadImage("downdirt");
24    Image stoneKuva = LoadImage("stone");
25    Image possuKuva = LoadImage("the-boar");
26    Image aseKuva = LoadImage("the-boar");
27    Image ammoKuva = LoadImage("boar-ammo");
28    Image backroundKuva = LoadImage("background");
29    Image tileKuva = LoadImage("tile");
30    public override void Begin()
31    {
32        Gravity = new Vector(0, -1000);
33        LuoKentta();
34        LisaaNappaimet();
35        LuoElamaLaskuri();
36
37        Camera.Follow(pelaaja1);
38        Camera.ZoomFactor = 1.2;
39        Camera.StayInLevel = true;
40
41    }
42    void LuoElamaLaskuri()
43    {
44        elamaLaskuri = new DoubleMeter(5);
45        elamaLaskuri.MaxValue = 5;
46        elamaLaskuri.LowerLimit += ElamaLoppui;
47
48        ProgressBar elamaPalkki = new ProgressBar(150, 20);
49        elamaPalkki.X = Screen.Left + 150;
50        elamaPalkki.Y = Screen.Top - 20;
51        elamaPalkki.BindTo(elamaLaskuri);
52        Add(elamaPalkki);
53        elamaPalkki.Angle = Angle.RightAngle;
54        elamaPalkki.Color = Color.Transparent;
55
56        elamaPalkki.BarColor = Color.Red;
57
58        elamaPalkki.BorderColor = Color.Black;
59    }
60    void ElamaLoppui()
61    {
62        MessageDisplay.Add("You Dieded");
63        pelaaja1.Destroy();
64        pelaaja1.Weapon.Destroy();
65    }
66    void LuoPanosLaskuri()
67    {
68
69        Label panosNaytto = new Label();
70        panosNaytto.X = Screen.Left + 200;
71        panosNaytto.Y = Screen.Top -120;
72        panosNaytto.TextColor = Color.Black;
73        panosNaytto.Color = Color.White;
74
75        panosNaytto.BindTo(ammustenmaara);
76        Add(panosNaytto);
77        panosNaytto.Title = "Boar count";
78
79
80    }
81    void LuoKentta()
82    {
83        TileMap kentta = TileMap.FromLevelAsset("kentta1");
84        kentta.SetTileMethod('S', LisaaKivi);
85        kentta.SetTileMethod('D', LisaaTaso2);
86        kentta.SetTileMethod('d', LisaaFakeDirt);
87        kentta.SetTileMethod('T', LisaaTaso);
88        kentta.SetTileMethod('*', LisaaTahti);
89        kentta.SetTileMethod('P', LisaaPahis);
90        kentta.SetTileMethod('N', LisaaPelaaja);
91        kentta.SetTileMethod('A', LisaaAmmo);
92        kentta.SetTileMethod('t', LisaaTile);
93        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
94        Level.CreateBorders();
95        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
96        Level.Background.Image = backroundKuva;
97        LuoPanosLaskuri();
98    }
99    void LisaaTile(Vector paikka, double leveys, double korkeus)
100    {
101    PhysicsObject tile = PhysicsObject.CreateStaticObject(leveys, korkeus);
102        tile.Position = paikka;
103        Add(tile);
104        tile.Image = tileKuva;
105    }
106   
107
108    void LisaaTaso(Vector paikka, double leveys, double korkeus)
109    {
110        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
111        taso.Position = paikka;
112        Add(taso);
113        taso.Image = topdirtKuva;
114    }
115    void LisaaTaso2(Vector paikka, double leveys, double korkeus)
116    {
117        PhysicsObject taso2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
118        taso2.Position = paikka;
119        Add(taso2);
120        taso2.Image = downdirtKuva;
121    }
122    void LisaaFakeDirt(Vector paikka, double leveys, double korkeus)
123    {
124        PhysicsObject fdirt = PhysicsObject.CreateStaticObject(leveys, korkeus);
125        fdirt.Position = paikka;
126        Add(fdirt);
127        fdirt.Image = downdirtKuva;
128        fdirt.IgnoresCollisionResponse = true;
129    }
130    void LisaaKivi(Vector paikka, double leveys, double korkeus)
131    {
132        PhysicsObject kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
133        kivi.Position = paikka;
134        Add(kivi);
135        kivi.Image = stoneKuva;
136    }
137    void LisaaTahti(Vector paikka, double leveys, double korkeus)
138    {
139        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
140        tahti.IgnoresCollisionResponse = true;
141        tahti.Position = paikka;
142        tahti.Image = tahtiKuva;
143        tahti.Tag = "tahti";
144        Add(tahti);
145    }
146
147    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
148    {
149        pelaaja1 = new PlatformCharacter(50, 50);
150        pelaaja1.Position = paikka;
151        pelaaja1.Mass = 4.0;
152        pelaaja1.Image = pelaajanKuva;
153        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
154        Add(pelaaja1);
155
156        pelaaja1.Weapon = new AssaultRifle(40, 25);
157
158        pelaaja1.Weapon.Ammo.Value = 0;
159
160        pelaaja1.Weapon.Ammo.MaxValue = 25;
161
162        pelaaja1.Weapon.CanHitOwner = true;
163
164        pelaaja1.Weapon.FireRate = 5.0;
165
166        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
167
168        pelaaja1.Weapon.Image = aseKuva;
169
170        AddCollisionHandler(pelaaja1, "pahis", VihollisTormaus);
171
172        AddCollisionHandler(pelaaja1, "ammo", AmmoKeräys);
173    }
174
175    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
176    {
177        //ammus.Destroy
178    }
179    void AmmuAseella(PlatformCharacter pelaaja)
180    {
181
182        PhysicsObject ammus = pelaaja.Weapon.Shoot();
183        if (ammus != null)
184        {
185            ammustenmaara.Value--;
186            pelaaja1.Weapon.Ammo.Value = ammustenmaara;
187            ammus.Image = possuKuva;
188            ammus.Size *= 12;
189            ammus.MaximumLifetime = TimeSpan.FromSeconds(10.0);
190            ammus.Tag = "ammus";
191        }
192    }
193    void LisaaAmmo(Vector paikka, double leveys, double korkeus)
194    {
195        PhysicsObject ammo = PhysicsObject.CreateStaticObject(leveys, korkeus);
196        ammo.IgnoresCollisionResponse = true;
197        ammo.Position = paikka;
198        ammo.Image = ammoKuva;
199        ammo.Tag = "ammo";
200        Add(ammo);
201    }
202    void LisaaNappaimet()
203    {
204        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
205        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
206
207        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
208        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
209        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
210
211        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
212
213        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
214        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
215        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
216
217        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
218
219        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
220    }
221
222    void Liikuta(PlatformCharacter hahmo, double nopeus)
223    {
224        hahmo.Walk(nopeus);
225    }
226
227    void Hyppaa(PlatformCharacter hahmo, double nopeus)
228    {
229        hahmo.Jump(nopeus);
230    }
231
232    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
233    {
234        maaliAani.Play();
235        MessageDisplay.Add("Gem Added");
236        tahti.Destroy();
237    }
238    void LisaaPahis(Vector paikka, double leveys, double korkeus)
239    {
240        PhysicsObject pahis = new PhysicsObject(leveys, korkeus);
241        pahis.Shape = Shape.Rectangle;
242        pahis.Mass = 10.0;
243        Add(pahis);
244        pahis.Image = possuKuva;
245        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
246        AddCollisionHandler(pahis, "ammus", AmmusTormaus);
247        satunnaisAivot.ChangeMovementSeconds = 3;
248        pahis.Tag = "pahis";
249        pahis.Brain = satunnaisAivot;
250
251    }
252    void AmmusTormaus(PhysicsObject tormaaja, PhysicsObject kohde)
253    {
254        tormaaja.Destroy();
255        MessageDisplay.Add("xp added");
256       
257    }
258    void VihollisTormaus(PhysicsObject tormaaja, PhysicsObject kohde)
259    {
260        elamaLaskuri.Value -= 1;
261    }
262    void AmmoKeräys(PhysicsObject tormaaja, PhysicsObject kohde)
263    {
264        pelaaja1.Weapon.Ammo.Value = +1;
265        ammustenmaara.Value++;
266        kohde.Destroy();
267    }
268}
Note: See TracBrowser for help on using the repository browser.