source: 2014/27/ArttuH/gamefusion/gamefusion/gamefusion/gamefusion.cs @ 5329

Revision 5329, 7.8 KB checked in by arjuhoyl, 8 years ago (diff)

ruokailutauko

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class gamefusion : PhysicsGame
10{
11    const double nopeus = 300;
12    const double hyppyNopeus = 500;
13    const int RUUDUN_KOKO = 40;
14
15    Image taustaKuva = LoadImage("8552054267_0b6750030d_b");
16   
17
18
19    PlatformCharacter pelaaja1;
20
21    Image pelaajanKuva = LoadImage("meat_boy");
22    Image coinKuva = LoadImage("coin");
23    Image zombiekuva = LoadImage("zombie");
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25    SoundEffect hyppy = LoadSoundEffect("laser_shoot");
26   
27
28    public override void Begin()
29    {
30        luoalkuvalikko();
31        MediaPlayer.Play("hitman");
32        MediaPlayer.IsRepeating = true;
33    }
34
35    void LuoKentta()
36    {
37        TileMap kentta = TileMap.FromLevelAsset("kentta1");
38        kentta.SetTileMethod('#', LisaaTaso);
39        kentta.SetTileMethod('*', Lisaacoin);
40        kentta.SetTileMethod('N', LisaaPelaaja);
41        kentta.SetTileMethod('z', luozombie);
42        kentta.SetTileMethod('p', pelkokuva);
43        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
44        Level.CreateBorders();
45        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
46        Level.Background.Image = taustaKuva;
47    }
48
49    void LisaaTaso(Vector paikka, double leveys, double korkeus)
50    {
51        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
52        taso.Position = paikka;
53        taso.Color = Color.Gray;
54        Add(taso);
55    }
56
57    void Lisaacoin(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject coin = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        coin.IgnoresCollisionResponse = true;
61        coin.Position = paikka;
62        coin.Image = coinKuva;
63        coin.Tag = "coin";
64        Add(coin);
65    }
66
67    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
68    {
69        pelaaja1 = new PlatformCharacter(leveys, korkeus);
70        pelaaja1.Position = paikka;
71        pelaaja1.Mass = 4.0;
72        pelaaja1.Image = pelaajanKuva;
73        AddCollisionHandler(pelaaja1, "coin", TormaaTahteen);
74        Add(pelaaja1);
75        pelaaja1.Weapon = new AssaultRifle(20, 5);
76        pelaaja1.Weapon.Ammo.Value = 100000;
77        pelaaja1.Weapon.ProjectileCollision = ammusOsui;
78        pelaaja1.CollisionIgnoreGroup = 1;
79        AddCollisionHandler(pelaaja1, "pelkokuva", luopelkokuva);
80    }
81
82    void LisaaNappaimet()
83    {
84       
85        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
86        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
87
88
89
90        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
91
92        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, Liikuta, "Pelaaja liikkuu vasemmalle");
93        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
94       
95        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
96    }
97
98    void Liikuta(AnalogState tatinTila)
99    {
100        Vector tatinAsento = tatinTila.StateVector;
101        if (tatinAsento.X == 0.0)
102        {
103            return;
104        }
105        pelaaja1.Walk(300 * tatinAsento.X);
106        luolima();
107       
108    }
109
110    void Hyppaa(PlatformCharacter hahmo, double nopeus)
111    {
112        hahmo.Jump(nopeus);
113        hyppy.Play();
114    }
115
116    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject coin)
117    {
118        maaliAani.Play();
119        MessageDisplay.Add("Keräsit kolikon!");
120        coin.Destroy();
121    }
122
123    void tunistus()
124    {
125        if (ControllerOne.IsConnected)
126        {
127            ControllerOne.Listen(Button.B, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
128            ControllerOne.Listen(Button.Back, ButtonState.Pressed,ConfirmExit, "Poistu pelistä");
129            ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, Liikuta, "Pelaaja liikkuu vasemmalle/oikealle");
130            ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
131            ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, ammuAseella, "ammu", pelaaja1);
132        }
133        else
134        {
135            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
136            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
137            Keyboard.Listen(Key.A, ButtonState.Down, LiikutaNappis, "Liikkuu vasemmalle", pelaaja1, -nopeus);
138            Keyboard.Listen(Key.D, ButtonState.Down, LiikutaNappis, "Liikkuu vasemmalle", pelaaja1, nopeus);
139            Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
140            Keyboard.Listen(Key.Space, ButtonState.Down, ammuAseella,"ammu", pelaaja1);
141        }
142        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
143    }
144    void LiikutaNappis(PlatformCharacter hahmo, double nopeus)
145    {
146        hahmo.Walk(nopeus);
147        luolima();
148   }
149   void luoalkuvalikko()
150     {
151   Mouse.IsCursorVisible = true;
152
153        MultiSelectWindow alkuvalikko = new MultiSelectWindow("pelin alkuvalikko",
154            "aloita peli", "lopeta peli");
155
156        alkuvalikko.AddItemHandler(0, AloitaPeli);
157        alkuvalikko.AddItemHandler(1, Exit);
158        alkuvalikko.DefaultCancel = 1;
159
160        Add(alkuvalikko);
161
162        Mouse.IsCursorVisible = false;
163    }
164
165   void AloitaPeli()
166   {
167       Gravity = new Vector(0, -1000);
168
169       LuoKentta();
170       tunistus();
171
172       Camera.Follow(pelaaja1);
173       Camera.ZoomFactor = 1.0;
174       Camera.StayInLevel = true;
175   }
176
177   void ammusOsui(PhysicsObject ammus, PhysicsObject kohde)
178   {
179       ammus.Destroy();
180       if (kohde.Tag.Equals("zombie"))
181       {
182           kohde.Destroy();
183       }
184   }
185   void ammuAseella(PlatformCharacter pelaaja)
186   {
187       PhysicsObject ammus = pelaaja.Weapon.Shoot();
188
189       if (ammus != null)
190       {
191           ammus.Size *= 1;
192           ammus.MaximumLifetime = TimeSpan.FromSeconds(3.0);
193           AddCollisionHandler(ammus, "zombie", ammusOsui);
194       }
195   }
196
197   void luozombie(Vector paikka, double leveys, double korkeus)
198   {
199
200       
201
202       PlatformCharacter zombie = new PlatformCharacter(leveys, korkeus);
203       zombie.Position = paikka;
204       zombie.Image = zombiekuva;
205       Add(zombie);
206       zombie.Tag = "zombie";
207     FollowerBrain satunnaisAivot = new FollowerBrain(pelaaja1);
208
209       zombie.Brain = satunnaisAivot;
210
211
212   }
213   void luolima()
214   {
215       PhysicsObject Lima = new PhysicsObject(5.0, 5.0);
216       Lima.Position = pelaaja1.Position;
217       Lima.Color = Color.Red;
218       Lima.LifetimeLeft = TimeSpan.FromSeconds(5);
219       Lima.CollisionIgnoreGroup = 1;
220       Lima.Mass = 0.1;
221       Lima.Y = pelaaja1.Y;
222       Lima.X = pelaaja1.X;
223       Add(Lima);
224
225
226   }
227   void pelkokuva(Vector paikka, double leveys, double korkeus)
228   {
229       PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
230       taso.Position = paikka;
231       taso.Color = Color.Gray;
232       taso.IgnoresCollisionResponse = true;
233       taso.Tag = "pelkokuva";
234       Add(taso);
235   }
236   void luopelkokuva(PhysicsObject pelaaja, PhysicsObject palikka)
237   {
238       palikka.Destroy();
239       GameObject kuva = new GameObject(Level.Height * 1.3, Level.Height);
240       kuva.Image = pelaajanKuva;
241       Add(kuva);
242       Timer.SingleShot(1.0, delegate
243       {
244           kuva.Destroy();
245       });
246
247       Timer ajastin = new Timer();
248       ajastin.Interval = 0.01;
249       ajastin.Timeout += delegate { kuva.Position = pelaaja1.Position; };
250       ajastin.Start();
251   }
252
253
254}
Note: See TracBrowser for help on using the repository browser.