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

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