source: 2014/27/AnttoniS/weed hyppely/weed hyppely/weed hyppely/weed_hyppely.cs @ 5419

Revision 5419, 8.7 KB checked in by ansevaki, 6 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 weed_hyppely : PhysicsGame
10{
11    DoubleMeter pelaaja1Elama;
12    int pelaajanTerveys = 5;
13    const double nopeus = 200;
14    DoubleMeter voimaMittari;
15    const double hyppyNopeus = 750;
16    const int RUUDUN_KOKO = 40;
17    private Animation ukkelinKavely;
18    private Animation doggKavely;
19
20    PlatformCharacter weed1;
21
22    Image pelaajanKuva = LoadImage("weed");
23    //Image jaa = LoadImage("spiral");
24    Image tahtiKuva = LoadImage("bongo");
25    Image maaKuva = LoadImage("maa");
26    Image rajahdysKuva = LoadImage("Smoke");
27    Image ammusKuva = LoadImage("jointti");
28    AssaultRifle doggase;
29    SoundEffect maaliAani = LoadSoundEffect("smokeweed");
30    Image taustaKuva = LoadImage("tausta");
31
32
33
34   
35
36    public override void Begin()
37    {
38        doggKavely = LoadAnimation("snoop");
39
40        MediaPlayer.Play("instrumental2");
41        MediaPlayer.Volume = 1;
42        MediaPlayer.IsRepeating = true;
43        ukkelinKavely = LoadAnimation("weed2");
44        Gravity = new Vector(0, -1500);
45
46        LuoKentta();
47        LisaaNappaimet();
48
49        Camera.Follow(weed1);
50        Camera.ZoomFactor = 1;
51        Level.Background.Image = taustaKuva;
52        Camera.StayInLevel = true;
53
54        Timer ajastin = new Timer();
55        ajastin.Interval = 0.9;
56        ajastin.Timeout += Ammu;
57        ajastin.Start();
58
59        voimaMittari = new DoubleMeter(5);
60        voimaMittari.MaxValue = 5;
61        BarGauge voimaPalkki = new BarGauge(10, 150);
62        voimaPalkki.BindTo(voimaMittari);
63        voimaMittari.LowerLimit += delegate { ses(voimaMittari.Value); };
64        Add(voimaPalkki);
65
66        voimaPalkki.X = Screen.Right - 150;
67        voimaPalkki.Y = Screen.Top - 20;
68        voimaPalkki.BarColor = Color.Green;
69        voimaPalkki.BorderColor = Color.White;
70        voimaPalkki.Angle = Angle.FromDegrees(90);
71
72        LuoPistelaskuri();
73    }
74
75    void LuoKentta()
76    {
77        TileMap kentta = TileMap.FromLevelAsset("kentta1");
78        kentta.SetTileMethod('#', LisaaTaso);
79        kentta.SetTileMethod('M', LisaaMaali);
80        kentta.SetTileMethod('*', LisaaTahti);
81        kentta.SetTileMethod('N', LisaaPelaaja);
82        kentta.SetTileMethod('S', LisaaVihollinen);
83        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
84        Level.CreateBorders();
85       
86        //Level.Background.CreateGradient(Color.White, Color.SkyBlue);
87        Level.Background.CreateStars(10000);
88    }
89
90    void LisaaTaso(Vector paikka, double leveys, double korkeus)
91    {
92        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
93        taso.Position = paikka;
94        taso.Color = Color.Green;
95        taso.Image = maaKuva;
96        Add(taso);
97    }
98
99
100    void LisaaMaali(Vector paikka, double leveys, double korkeus)
101    {
102        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
103        maali.Position = paikka;
104        maali.Color = Color.Red;
105        Add(maali);
106        maali.Tag = "M";
107    }
108
109
110
111
112    void LisaaTahti(Vector paikka, double leveys, double korkeus)
113    {
114        PhysicsObject ganja = PhysicsObject.CreateStaticObject(25, 40);
115        ganja.IgnoresCollisionResponse = true;
116        ganja.Position = paikka;
117        ganja.Image = tahtiKuva;
118        ganja.Tag = "tahti";
119        ganja.IgnoresCollisionResponse = true;
120        ganja.CollisionIgnoreGroup = 1;
121        Add(ganja);
122    }
123
124    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
125    {
126        weed1 = new PlatformCharacter(leveys, korkeus);
127        weed1.Position = paikka;
128        weed1.Mass = 1;
129        weed1.Image = pelaajanKuva;
130        AddCollisionHandler(weed1, "tahti", TormaaTahteen);
131        AddCollisionHandler(weed1, "ammus", tormaanAmmus);
132        AddCollisionHandler(weed1, "tahti", PelaajaParantuu);
133        AddCollisionHandler(weed1, "tahti", Pisteet);
134        weed1.Animation = new Animation(ukkelinKavely);
135        weed1.Animation.Start();
136        weed1.Tag = "health";
137        weed1.Animation.FPS = 7;
138        Add(weed1);
139
140
141    }
142
143    //Ohjaimet
144
145    void LisaaNappaimet()
146    {
147        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
148        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
149
150        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", weed1, -nopeus);
151        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", weed1, nopeus);
152        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", weed1, hyppyNopeus);
153
154        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
155
156        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", weed1, -nopeus);
157        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", weed1, nopeus);
158        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", weed1, hyppyNopeus);
159        //ControllerOne.Vibrate(10000000000000000,1000000,100000000000000000,100000000000000,1000000000000000);
160
161        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
162    }
163
164    void Liikuta(PlatformCharacter hahmo, double nopeus)
165    {
166        hahmo.Walk(nopeus);
167    }
168
169    void Hyppaa(PlatformCharacter hahmo, double nopeus)
170    {
171        hahmo.Jump(nopeus);
172    }
173
174    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
175    {
176        //maaliAani.Play();
177        MessageDisplay.Add("Blaze it!");
178        MessageDisplay.Color = Color.Transparent;
179        tahti.Destroy();
180        int pMaxMaara = 200;
181
182        ExplosionSystem rajahdys =
183          new ExplosionSystem(LoadImage("Smoke"), pMaxMaara);
184        Add(rajahdys);
185        double x = 0;
186        double y = 0;
187        int pMaara = 50;
188        rajahdys.AddEffect(tahti.X, tahti.Y, pMaara);
189    }
190
191    void LisaaVihollinen(Vector pos, double width, double height)
192    {
193        PhysicsObject dogg = new PhysicsObject(40, 80);
194        dogg.Shape = Shape.Rectangle;
195        dogg.Position = pos;
196        dogg.Mass = 1000;
197        dogg.Animation = doggKavely;
198        dogg.Animation.FPS = 7;
199        dogg.Animation.Start();
200        doggKavely = LoadAnimation("snoop");
201        Add(dogg);
202        doggase = new AssaultRifle(30, 10);
203        doggase.Ammo.Value = 1000;
204        doggase.ProjectileCollision = AmmusOsui;
205        dogg.CanRotate = false;
206        dogg.Add(doggase);
207        doggase.Angle += Angle.FromDegrees(180);
208        doggase.IsVisible = false;
209    }
210
211    void AmmusOsui(PhysicsObject ammus, PhysicsObject weed1)
212    {
213        ammus.Destroy();
214        //maaliAani.Play();
215        ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("weed"), 1000);
216        Add(rajahdys);
217        double x = 0;
218        double y = 0;
219        int pMaara = 40;
220        rajahdys.AddEffect(ammus.X, ammus.Y, pMaara);
221    }
222
223
224    void Ammu()
225    {
226        if (900 >= (doggase.Position - weed1.Position).Magnitude)
227       
228
229        {
230            PhysicsObject ammus = doggase.Shoot();
231
232
233            if (ammus != null)
234            {
235                ammus.Size = new Vector(50, 7);
236                ammus.Image = ammusKuva;
237                ammus.Tag = "ammus";
238                ammus.CollisionIgnoreGroup = 1;
239                //doggase.AttackSound = maaliAani;
240                //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
241                doggase.FireRate = 50.0;
242               
243            }
244        };
245    }
246
247
248   
249
250    void PelaajaParantuu(PhysicsObject hahmo, PhysicsObject tahti)
251    {
252        voimaMittari.Value++;
253    }
254
255   
256    void VahennaVoimia()
257    {
258        voimaMittari.Value--;
259
260    }
261
262    void tormaanAmmus(PhysicsObject hahmo, PhysicsObject ammus)
263    {
264        voimaMittari.Value--;
265
266        if (pelaajanTerveys <= 0) weed1.Destroy();
267
268    }
269
270    void ses(double mittarinArvo)
271    {
272        weed1.Destroy();
273    }
274
275
276
277    IntMeter pisteLaskuri;
278    void LuoPistelaskuri()
279    {
280        pisteLaskuri = new IntMeter(0);
281
282        Label pisteNaytto = new Label();
283        pisteNaytto.X = Screen.Left + 100;
284        pisteNaytto.Y = Screen.Top - 100;
285        pisteNaytto.TextColor = Color.Black;
286        pisteNaytto.Color = Color.Transparent;
287
288        pisteNaytto.BindTo(pisteLaskuri);
289        Add(pisteNaytto);
290        pisteNaytto.BindTo(pisteLaskuri);
291        Add(pisteNaytto);
292
293    }
294
295    void Pisteet(PhysicsObject hahmo, PhysicsObject tahti)
296    {
297        pisteLaskuri.Value++;
298    }
299
300}
301
302
Note: See TracBrowser for help on using the repository browser.