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

Revision 5244, 6.7 KB checked in by nieekrva, 7 years ago (diff)

vihun aseistus kesken

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    DoubleMeter elamaLaskuri;
12    const double nopeus = 200;
13    const double hyppyNopeus = 750;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17    AssaultRifle pelaajan1Ase;
18
19
20    Image pelaajanKuva = LoadImage("hahmo");
21    Image tahtiKuva = LoadImage("tahti");
22    Image vihunkuva = LoadImage("bowser");
23    Image lieska = LoadImage("lieska");
24    Image geminkuva = LoadImage("exp_gem");
25
26    SoundEffect maaliAani = LoadSoundEffect("maali");
27    Weapon vihunase;
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    void LuoKentta()
41    {
42        TileMap kentta = TileMap.FromLevelAsset("kentta1");
43        kentta.SetTileMethod('#', LisaaTaso);
44        kentta.SetTileMethod('*', LisaaTahti);
45        kentta.SetTileMethod('N', LisaaPelaaja);
46        kentta.SetTileMethod('b', Luovihu);
47        kentta.SetTileMethod('g', lisaagem);
48        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
49        Level.CreateBorders();
50        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
51    }
52
53    void LisaaTaso(Vector paikka, double leveys, double korkeus)
54    {
55        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
56        taso.Position = paikka;
57        taso.Color = Color.Green;
58        Add(taso);
59    }
60
61    void LisaaTahti(Vector paikka, double leveys, double korkeus)
62    {
63        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
64        tahti.IgnoresCollisionResponse = true;
65        tahti.Position = paikka;
66        tahti.Image = tahtiKuva;
67        tahti.Tag = "tahti";
68        Add(tahti);
69    }
70    void lisaagem(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject gem = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        gem.IgnoresCollisionResponse = true;
74        gem.Position = paikka;
75        gem.Image = geminkuva;
76        gem.Tag = "gem";
77        Add(gem);
78
79    }
80
81       
82   
83
84
85
86
87    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
88    {
89        pelaaja1 = new PlatformCharacter(leveys, korkeus);
90        pelaaja1.Position = paikka;
91        pelaaja1.Mass = 4.0;
92        pelaaja1.Image = pelaajanKuva;
93        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
94        AddCollisionHandler(pelaaja1, "gem", tormaagemiin);
95        Add(pelaaja1);
96        pelaajan1Ase = new AssaultRifle(30, 10);
97
98        //Ammusten määrä aluksi:
99        pelaajan1Ase.Ammo.Value = 1000;
100
101
102
103        pelaaja1.Add(pelaajan1Ase);
104    }
105    void Luovihu(Vector paikka, double leveys, double korkeus)
106    {
107        PlatformCharacter vihu = new PlatformCharacter(leveys, korkeus);
108        vihu.Position = paikka;
109        vihu.Mass = 3.0;
110        vihu.Height = 150;
111        vihu.Width = 100;
112        vihu.Image = vihunkuva;
113        vihu.CanRotate = false;
114        vihunase = new AssaultRifle(50, 60);
115        vihunase.Color = Color.Transparent;
116        vihunase.Image = null;
117        vihu.Weapon = vihunase;
118        Timer ajastin = new Timer();
119        ajastin.Interval = 1.5;
120        ajastin.Timeout += vihunase.Shoot;
121        ajastin.Start();
122        Add(vihu);
123
124        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
125        tasoAivot.Speed = 100;
126
127        vihu.Brain = tasoAivot;
128        tasoAivot.FallsOffPlatforms = true;
129        tasoAivot.JumpSpeed = 700;
130        tasoAivot.TriesToJump = true;
131
132
133    }
134
135    void LisaaNappaimet()
136    {
137        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
138        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
139
140        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
141        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
142        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
143        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase);
144
145        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
146
147        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
148        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
149        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
150
151        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
152    }
153
154    void Liikuta(PlatformCharacter hahmo, double nopeus)
155    {
156        hahmo.Walk(nopeus);
157    }
158
159    void Hyppaa(PlatformCharacter hahmo, double nopeus)
160    {
161        hahmo.Jump(nopeus);
162    }
163
164    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
165    {
166        maaliAani.Play();
167        MessageDisplay.Add("Keräsit tähden!");
168        tahti.Destroy();
169    }
170    void tormaagemiin(PhysicsObject hahmo, PhysicsObject gem)
171    {
172        MessageDisplay.Add("100 exp. gained!");
173        gem.Destroy();
174    }
175
176    void AmmuAseella(AssaultRifle ase)
177    {
178        PhysicsObject ammus = ase.Shoot();
179
180        if (ammus != null)
181        {
182            //ammus.Size *= 3;
183            ammus.CanRotate = false;
184            //ammus.Image = ...
185            ammus.MaximumLifetime = TimeSpan.FromSeconds(1.0);
186
187        }
188    }
189    void AmmusOsuu(PhysicsObject ammus, PlatformCharacter vihu)
190    {
191        AddCollisionHandler(ammus, vihu, osuma);
192
193    }
194    void LuoElamaLaskuri()
195    {
196        elamaLaskuri = new DoubleMeter(10);
197        elamaLaskuri.MaxValue = 10;
198        elamaLaskuri.LowerLimit += ElamaLoppui;
199
200        ProgressBar elamaPalkki = new ProgressBar(150, 20);
201        elamaPalkki.X = Screen.Left + 150;
202        elamaPalkki.Y = Screen.Top - 20;
203        elamaPalkki.BindTo(elamaLaskuri);
204        Add(elamaPalkki);
205    }
206
207    void ElamaLoppui()
208    {
209        MessageDisplay.Add("Game over!");
210    }
211   
212
213    void osuma(PhysicsObject ammus, PlatformCharacter vihu)
214    {
215        ammus.Destroy();
216        MessageDisplay.Add("osuma");
217    }
218
219    void vihuampuu(PlatformCharacter vihu)
220    {
221        PhysicsObject ammus = vihu.Weapon.Shoot();
222
223        if (ammus != null)
224        {
225            //ammus.Size *= 3;
226            ammus.Image = lieska;
227            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
228        }
229    }
230
231
232
233
234
235
236
237
238}
Note: See TracBrowser for help on using the repository browser.