source: 2014/27/NikiV/untitled/untitled/untitled/untitled.cs @ 5330

Revision 5330, 8.1 KB checked in by nieekrva, 7 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class untitled : PhysicsGame
10{
11   
12    DoubleMeter elamaLaskuri;
13    DoubleMeter vihunlaskuri;
14    const double nopeus = 300;
15    const double hyppyNopeus = 750;
16    const int RUUDUN_KOKO = 40;
17
18    PlatformCharacter pelaaja1;
19    PlatformCharacter vihu;
20    AssaultRifle pelaajan1Ase;
21    PhysicsObject ammus;
22
23
24    Image pelaajanKuva = LoadImage("hahmo");
25    Image tahtiKuva = LoadImage("tahti");
26    Image vihunkuva = LoadImage("bowser");
27    Image lieska = LoadImage("lieska");
28    Image geminkuva = LoadImage("exp_gem");
29    Image paikallaanAnimaatio = LoadImage("hahmo2");
30
31    SoundEffect maaliAani = LoadSoundEffect("maali");
32    Weapon vihunase;
33    private Image[] ukkelinKavely = LoadImages("hahmo", "hahmo2", "hahmo3");
34
35    public override void Begin()
36    {
37        SmoothTextures = false;
38        Gravity = new Vector(0, -1000);
39
40        LuoKentta();
41        LisaaNappaimet();
42        LuoElamaLaskuri();
43
44        Camera.Follow(pelaaja1);
45        Camera.ZoomFactor = 1.2;
46        Camera.StayInLevel = true;
47    }
48
49    void LuoKentta()
50    {
51        TileMap kentta = TileMap.FromLevelAsset("kentta1");
52        kentta.SetTileMethod('#', LisaaTaso);
53        kentta.SetTileMethod('*', LisaaTahti);
54        kentta.SetTileMethod('N', LisaaPelaaja);
55        kentta.SetTileMethod('b', Luovihu);
56        kentta.SetTileMethod('g', lisaagem);
57        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
58        Level.CreateBorders();
59        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
60    }
61
62    void LisaaTaso(Vector paikka, double leveys, double korkeus)
63    {
64        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
65        taso.Position = paikka;
66        taso.Color = Color.Green;
67        Add(taso);
68    }
69
70    void LisaaTahti(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        tahti.IgnoresCollisionResponse = true;
74        tahti.Position = paikka;
75        tahti.Image = tahtiKuva;
76        tahti.Tag = "tahti";
77        Add(tahti);
78    }
79    void lisaagem(Vector paikka, double leveys, double korkeus)
80    {
81        PhysicsObject gem = PhysicsObject.CreateStaticObject(leveys, korkeus);
82        gem.IgnoresCollisionResponse = true;
83        gem.Position = paikka;
84        gem.Image = geminkuva;
85        gem.Tag = "gem";
86        Add(gem);
87
88    }
89
90       
91   
92
93
94
95
96    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
97    {
98        pelaaja1 = new PlatformCharacter(leveys, korkeus);
99        pelaaja1.Position = paikka;
100        pelaaja1.Mass = 3.5;
101        pelaaja1.Image = pelaajanKuva;
102        pelaaja1.AnimWalk = new Animation(ukkelinKavely);
103        pelaaja1.AnimWalk.FPS = 20;
104        pelaaja1.AnimIdle = new Animation(paikallaanAnimaatio);
105        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
106        AddCollisionHandler(pelaaja1, "gem", tormaagemiin);
107        AddCollisionHandler(pelaaja1, "vihu", Tormaavihuun);
108        Add(pelaaja1);
109       
110        pelaajan1Ase = new AssaultRifle(30, 10);
111
112        //Ammusten määrä aluksi:
113        pelaajan1Ase.Ammo.Value = 1000;
114
115
116
117        pelaaja1.Add(pelaajan1Ase);
118    }
119    void Luovihu(Vector paikka, double leveys, double korkeus)
120    {
121        PlatformCharacter vihu = new PlatformCharacter(leveys, korkeus);
122        vihu.Position = paikka;
123        vihu.Mass = 3.0;
124        vihu.Height = 150;
125        vihu.Width = 100;
126        vihu.Image = vihunkuva;
127        vihu.CanRotate = false;
128        vihu.Tag = "vihu";
129        //AddCollisionHandler(vihu, ammus, tormaaammukseen);
130        vihunase = new AssaultRifle(50, 60);
131        vihunase.Color = Color.Transparent;
132        vihunase.Image = null;
133        vihu.Weapon = vihunase;
134        Timer ajastin = new Timer();
135        ajastin.Interval = 1.5;
136       
137        ajastin.Start();
138        Add(vihu);
139
140        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
141        tasoAivot.Speed = 100;
142
143        vihu.Brain = tasoAivot;
144        tasoAivot.FallsOffPlatforms = true;
145        tasoAivot.JumpSpeed = 700;
146        tasoAivot.TriesToJump = true;
147
148
149    }
150
151    void LisaaNappaimet()
152    {
153        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
154        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
155
156        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
157        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
158        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
159        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase);
160
161        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
162
163        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
164        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
165        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
166
167        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
168    }
169
170    void Liikuta(PlatformCharacter hahmo, double nopeus)
171    {
172        hahmo.Walk(nopeus);
173    }
174
175    void Hyppaa(PlatformCharacter hahmo, double nopeus)
176    {
177        hahmo.Jump(nopeus);
178    }
179
180    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
181    {
182        maaliAani.Play();
183        MessageDisplay.Add("Keräsit tähden!");
184        tahti.Destroy();
185    }
186    void tormaagemiin(PhysicsObject hahmo, PhysicsObject gem)
187    {
188        MessageDisplay.Add("100 exp. gained!");
189        gem.Destroy();
190    }
191
192    void AmmuAseella(AssaultRifle ase)
193    {
194        PhysicsObject ammus = ase.Shoot();
195
196        if (ammus != null)
197        {
198            //ammus.Size *= 3;
199            ammus.CanRotate = false;
200            AddCollisionHandler(ammus, "vihu", osuma);
201            //ammus.Image = ...
202            ammus.MaximumLifetime = TimeSpan.FromSeconds(1.0);
203
204        }
205    }
206    void AmmusOsuu(PhysicsObject ammus, PlatformCharacter vihu)
207    {
208       
209
210    }
211    void LuoElamaLaskuri()
212    {
213        elamaLaskuri = new DoubleMeter(10);
214        elamaLaskuri.MaxValue = 10;
215        elamaLaskuri.LowerLimit += ElamaLoppui;
216
217        ProgressBar elamaPalkki = new ProgressBar(150, 20);
218        elamaPalkki.X = Screen.Left + 150;
219        elamaPalkki.Y = Screen.Top - 20;
220        elamaPalkki.BindTo(elamaLaskuri);
221        Add(elamaPalkki);
222    }
223    void Luovihunlaskuri()
224    {
225        vihunlaskuri = new DoubleMeter(10);
226        vihunlaskuri.MaxValue = 100;
227        vihunlaskuri.LowerLimit += voitit;
228
229        ProgressBar vihunpalkki = new ProgressBar(150, 20);
230        vihunpalkki.X = Screen.Right + 150;
231        vihunpalkki.Y = Screen.Top - 20;
232        vihunpalkki.BindTo(vihunlaskuri);
233        Add(vihunpalkki);
234    }
235
236    void ElamaLoppui()
237    {
238        MessageDisplay.Add("Game over!");
239        pelaaja1.Destroy();
240    }
241    void voitit()
242    {
243        MessageDisplay.Add("Voitit!");
244        vihu.Destroy();
245    }
246   
247
248    void osuma(PhysicsObject ammus, PhysicsObject vihu)
249    {
250        ammus.Destroy();
251        MessageDisplay.Add("HIT!");
252       
253    }
254
255    void vihuampuu(PlatformCharacter vihu)
256    {
257        PhysicsObject ammus2 = vihu.Weapon.Shoot();
258
259        if (ammus != null)
260        {
261            //ammus.Size *= 3;
262            ammus.Image = lieska;
263            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
264        }
265       
266    }
267    void Tormaavihuun(PhysicsObject pelaaja1, PhysicsObject vihu)
268    {
269        elamaLaskuri.Value -=1;
270    }
271    void tormaaammukseen(PhysicsObject vihu, PhysicsObject ammus)
272    {
273        vihunlaskuri.Value -= 1;
274    }
275
276
277
278
279
280
281
282
283}
Note: See TracBrowser for help on using the repository browser.