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

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