source: 2012/24/ToniV/Try to survive/Try to survive/Try to survive/Try_to_survive.cs @ 3113

Revision 3113, 5.1 KB checked in by tovalile, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9class Zombi : PhysicsObject
10{
11    public int Elamat = 1;
12
13    public Zombi(double leveys, double korkeus)
14        : base(leveys, korkeus)
15    {
16    }
17}
18
19
20public class Try_to_survive : PhysicsGame
21{
22    Image ukkokuva = LoadImage("ukko");
23    Image Zombikuva = LoadImage("Zombi");
24    Image tausta = LoadImage("tausta");
25  // 
26
27    public PhysicsObject ukko;
28    int healt = 7;
29
30    bool saakoampua = true;
31
32    Vector[] pisteet = { new Vector(600, 470), new Vector(600, -470), new Vector(0, 470), new Vector(-600,-450) };
33    Vector suunta = Vector.Zero;
34
35    public override void Begin()
36    {
37        ukko = new PhysicsObject(40.0, 40.0);
38        ukko.Image = ukkokuva;
39        ukko.Mass = 1;
40        Add(ukko);
41
42        luoajastin();
43        luoohjain();
44
45        luoseina(400, 190, 24, 400);
46        luoseina(400, -280, 24, 250);
47        luoseina(-400, -10, 24, 300);
48        luoseina(-100, -0, 40, 300);
49        luoseina(220, 2, 200, 24);
50        luoseina(215, -167, 200, 24);
51
52
53        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
54        ControllerOne.Listen(Button.Start, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
55
56        Level.Width = 1250;
57        Level.Height = 1000;
58        PhysicsObject alareuna = Level.CreateBottomBorder();
59        PhysicsObject yläreuna = Level.CreateTopBorder();
60        PhysicsObject vasenreuna = Level.CreateLeftBorder();
61        PhysicsObject oikeareuna = Level.CreateRightBorder();
62
63        alareuna.Tag = "reuna";
64        yläreuna.Tag = "reuna";
65        vasenreuna.Tag = "reuna";
66        oikeareuna.Tag = "reuna";
67        Level.Background.Image = tausta;
68        Level.Background.FitToLevel();
69
70        Camera.FollowedObject = ukko;
71
72        MediaPlayer.Play("skrillex");
73
74    }
75
76    void luoZombi()
77    {
78        FollowerBrain seuraajanaivot = new FollowerBrain(ukko);
79        Zombi Zombi2 = new Zombi(40, 40);
80        Zombi2.Position = pisteet[RandomGen.NextInt(0, 4)];
81        Zombi2.Image = Zombikuva;
82        Zombi2.Brain = seuraajanaivot;
83        Zombi2.Tag = "Zombi";
84        seuraajanaivot.Speed = 90;
85        seuraajanaivot.TargetFollowDistance = 60000;
86        seuraajanaivot.FollowAlways = true;
87        seuraajanaivot.TargetCloseDistance = 0;
88        Add(Zombi2);
89        AddCollisionHandler(Zombi2, ukko, pelaajaanosui);
90
91
92
93    }
94
95    void luoseina(double X, double Y, double leveys, double korkeus)
96    {
97        PhysicsObject seinä = PhysicsObject.CreateStaticObject(leveys, korkeus);
98        seinä.Color = Color.Blue;
99        seinä.X = (X);
100        seinä.Y = (Y);
101        seinä.Tag = "seina";
102        Add(seinä);
103    }
104
105    void luoajastin()
106    {
107
108        Timer ajastin = new Timer();
109        ajastin.Interval = 0.3;
110        ajastin.Timeout += luoZombi;
111        ajastin.Start(200);
112
113        Timer ajastin2 = new Timer();
114        ajastin2.Start();
115
116
117    }
118
119    void luoohjain()
120    {
121        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, liikutapelaajaa, "liiku");
122        ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, tahtaa, "tähtää");
123        ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, ammu, "ammu");
124    }
125
126    void liikutapelaajaa(AnalogState tikku)
127    {
128        ukko.Move(tikku.StateVector * 150);
129    }
130
131    void tahtaa(AnalogState tikku)
132    {
133        suunta = tikku.StateVector;
134    }
135
136    void ammu()
137    {
138        if (saakoampua == false) return;
139        PhysicsObject panos = new PhysicsObject(50, 50);
140        panos.Shape = Shape.Circle;
141        panos.Color = Color.Green;
142        panos.Hit(suunta * 1100);
143        panos.Position = ukko.Position;
144        AddCollisionHandler(panos, "Zombi", Zombikuoli);
145        AddCollisionHandler(panos, "seina", TuhoaAmmus);
146        AddCollisionHandler(panos, "reuna", TuhoaAmmus);
147        Add(panos);
148
149        saakoampua = false;
150        Timer.SingleShot(0.3, saaampua);
151    }
152
153    void saaampua()
154    {
155        saakoampua = true;
156    }
157    void TuhoaAmmus(PhysicsObject panos, PhysicsObject kohde)
158    {
159        panos.Destroy();
160    }
161
162    void pelaajaanosui(PhysicsObject pelaaja, PhysicsObject zombi)
163    {
164        healt--;
165        if (healt == 0)
166        {
167            ukko.Destroy();
168            rajahda();
169            peliloppuu();
170            MessageDisplay.Add("GAME OVER");
171        }
172    }
173
174    void Zombikuoli(PhysicsObject panos, PhysicsObject kohde)
175    {
176        panos.Destroy();
177        Zombi Zombi2 = kohde as Zombi;
178
179        if (Zombi2 == null) return;
180
181        Zombi2.Elamat--;
182        if (Zombi2.Elamat == 0)
183        {
184            Zombi2.Destroy();
185
186        }
187    }
188
189    void rajahda()
190    {
191        Explosion rajahdys = new Explosion(50);
192        rajahdys.Position = ukko.Position;
193        rajahdys.Speed = 100.0;
194        rajahdys.Force = 1000000;
195        rajahdys.ShockwaveColor = Color.Red;
196        Add(rajahdys);
197    }
198
199        void peliloppuu ()
200        {
201            Exit();
202        }
203}
Note: See TracBrowser for help on using the repository browser.