source: 2014/24/EemeliK/Zombieland/Files/ZombieLandV.0.01/ZombieLand/ZombieLand/ZombieLand.cs @ 5907

Revision 5907, 7.0 KB checked in by taeekotr, 4 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
9
10
11    public class ZombieLand : PhysicsGame
12    {
13        PhysicsObject pelaaja;
14        PhysicsObject autotie;
15        PhysicsObject autotieflipped;
16        PhysicsObject palikka;
17        PhysicsObject cursor;
18        PhysicsObject penkki;
19        PhysicsObject grass;
20        AssaultRifle pelaajanase;
21        double valonlisaysmaara = -0.1;
22        Inventory inventory = new Inventory();
23        Image pelaajanKuva = LoadImage("pelaajakonsulla");
24        Image taustaKuva = LoadImage("creepylattia");
25        Image grassinKuva = LoadImage("grass");
26        Image autotienKuva = LoadImage("autotietie");
27        Image penkinKuva = LoadImage("penkki");
28        Image autotieflippedinKuva = LoadImage("autotie");
29        private Image[] jalkaKuvat = LoadImages("officer_legs_0001", "officer_legs_0002", "officer_legs_0003", "officer_legs_0004");
30        public override void Begin()
31        {
32
33            IsFullScreen = true;
34
35            LuoKentta();
36            LuoCursor();
37
38            PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
39            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
40        }
41
42        void LuoPelaaja(Vector paikka, double leveys, double korkeus)
43        {
44            pelaaja = new PhysicsObject(70, 70);
45            pelaaja.Position = paikka;
46            pelaaja.Color = Color.Blue;
47            pelaaja.Image = pelaajanKuva;
48            pelaaja.LinearDamping = 0.9;
49
50            Add(pelaaja, 2);
51
52            Add(inventory);
53
54            //  GameObject jalat = new GameObject(50,50);
55            //  jalat.Image = jalkaKuvat[0];
56            //  Add(jalat, -1);
57            //  Animation kavely = new Animation(jalkaKuvat);
58            //  kavely.FPS = 9;
59            //  jalat.Animation = kavely;
60            //  jalat.Animation.Start();
61            //  Timer kavelyajastin = new Timer();
62            //  kavelyajastin.Interval = 0.01;
63            //  kavelyajastin.Timeout += delegate
64            //  {
65            //      jalat.Position = pelaaja.Position;
66            //      jalat.AbsoluteAngle = pelaaja.AbsoluteAngle;
67
68
69            /*
70            if (pelaaja.Velocity.Magnitude >= 0.5)
71            {
72                kavely.FPS = pelaaja.Velocity.Magnitude / 200.0 * 8;
73            }
74             */
75
76            //    if (pelaaja.Velocity.Magnitude >= 0.5 && !kavely.IsPlaying)
77            //    {
78            //        kavely.Start();
79            //    }
80            //    if (pelaaja.Velocity.Magnitude < 0.5 && kavely.IsPlaying)
81            //    {
82            //        kavely.Stop();
83            //    }
84            //};
85            //kavelyajastin.Start();
86
87            pelaajanase = new AssaultRifle(30,10);
88            pelaajanase.Ammo.Value = 1000;
89            pelaajanase.ProjectileCollision = AmmusOsui;
90            pelaajanase.Angle = Angle.FromDegrees(90);
91
92            pelaaja.Add(pelaajanase);
93
94            Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
95            Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
96            Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
97            Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
98            Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Allah", pelaajanase);
99            Mouse.ListenMovement(0.0, AllahuAkbar, "pommi");
100
101        }
102
103        void LuoPalikka(Vector paikka, double leveys, double korkeus)
104        {
105            palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
106            palikka.Color = Color.Black;
107            palikka.Position = paikka;
108            Add(palikka, -1);
109
110
111        }
112
113        void LuoKentta()
114        {
115            TileMap level = TileMap.FromLevelAsset("mappi");
116            level.SetTileMethod('P', LuoPelaaja);
117            level.SetTileMethod('#', LuoPalikka);
118            level.SetTileMethod('G', LuoGrass);
119            level.SetTileMethod('W', LuoPenkki);
120            level.SetTileMethod('A', LuoAutoTieFlipped);
121            level.Execute(40, 40);
122            Level.Background.Image = taustaKuva;
123            Level.Background.TileToLevel();
124            Camera.Follow(pelaaja);
125            Camera.Zoom(1.5);
126            Level.AmbientLight = 1.0;
127            Timer paivatimer = new Timer();
128            paivatimer.Interval = 20;
129            paivatimer.Timeout += DayNight;
130            paivatimer.Start();
131
132
133
134        }
135
136        void LiikutaPelaajaa(Vector vektori)
137        {
138            pelaaja.Push(vektori);
139        }
140
141        void AllahuAkbar(AnalogState hiiri)
142        {
143            pelaaja.AbsoluteAngle = (pelaaja.Position - Mouse.PositionOnWorld).Angle + Angle.FromDegrees(90);
144            cursor.Position = Mouse.PositionOnWorld;
145        }
146
147        void LuoCursor()
148        {
149            cursor = new PhysicsObject(10, 10);
150            cursor.Shape = Shape.Circle;
151            cursor.Color = Color.Red;
152            Add(cursor, 2);
153        }
154
155        void LuoGrass(Vector paikka, double leveys, double korkeus)
156        {
157            grass = PhysicsObject.CreateStaticObject(80, 80);
158            grass.Image = grassinKuva;
159            grass.Position = paikka;
160            Add(grass, -1);
161            grass.IgnoresCollisionResponse = true;
162
163        }
164
165        void LuoAutoTie(Vector paikka, double leveys, double korkeus)
166        {
167            autotie = PhysicsObject.CreateStaticObject(160, 160);
168            autotie.Image = autotienKuva;
169            autotie.Position = paikka;
170            Add(autotie, -1);
171        }
172
173        void LuoAutoTieFlipped(Vector paikka, double leveys, double korkeus)
174        {
175            autotieflipped = PhysicsObject.CreateStaticObject(80, 160);
176            autotieflipped.Image = autotieflippedinKuva;
177            autotieflipped.Position = paikka;
178            autotieflipped.IgnoresCollisionResponse = true;
179            Add(autotieflipped, -1);
180        }
181
182        void LuoPenkki(Vector paikka, double leveys, double korkeus)
183        {
184            penkki = PhysicsObject.CreateStaticObject(leveys, korkeus);
185            penkki.Position = paikka;
186            penkki.Image = penkinKuva;
187            Add(penkki);
188
189        }
190
191        void DayNight()
192        {
193            Level.AmbientLight += valonlisaysmaara;
194            if (Level.AmbientLight <= 0.5 || Level.AmbientLight >= 1.0)
195            {
196                valonlisaysmaara = -valonlisaysmaara;
197
198            }
199        }
200
201        void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
202        {
203            kohde.Destroy();
204        }
205
206        void AmmuAseella(AssaultRifle ase)
207        {
208            PhysicsObject ammus = ase.Shoot();
209            if (ammus != null)
210            {
211                ammus.Size *= 3;
212            }
213        }
214    }
215
216
Note: See TracBrowser for help on using the repository browser.