source: 2011/24/MiskaK/Sniper/Sniper/Sniper/Peli.cs @ 1997

Revision 1997, 4.2 KB checked in by mikrkana, 9 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 Sniper : PhysicsGame
10{
11   
12    PhysicsObject maalitaulu;
13    Flame liekki;
14    ExplosionSystem rajahdys;
15    PhysicsObject tähtäin;
16    Timer ajastin;
17    PhysicsObject ammusmittari;
18    Image taulunKuva = LoadImage("maalitaulu");
19    Image tähtäimenKuva = LoadImage("tähtäin2");
20    Image tähtäimenLatausKuva = LoadImage("loadtähtäin");
21    Image savuHiukkanen = LoadImage("savuhiukkanen");
22    Image räjähdysHiukkanen = LoadImage("räjähdyshiukkanen");
23    int pMaxMaara = 500;
24   
25    double grav = -200.0;
26
27    public override void Begin()
28    {
29        LuoTähtäin();
30        LuoMaalitaulu(RandomGen.NextDouble(-400.0, 400.0) , 400.0);
31       
32        AsetaOhjaimet();
33        LuoKenttä(grav);
34        LuoAmmusMittari();
35       
36    }
37
38    void LuoTähtäin()
39    {
40        tähtäin = new PhysicsObject(100, 100);
41        tähtäin.Image = tähtäimenKuva;
42        Mouse.ListenMovement(0.1, LiikutaTähtäintä, null);
43        tähtäin.IgnoresGravity = true;
44        tähtäin.IgnoresCollisionResponse = true;
45        tähtäin.CanRotate = false;
46
47        ajastin = new Timer();
48        ajastin.Interval = 0.5;
49        ajastin.Trigger += HeilutaTähtäintä;
50        ajastin.Start();
51
52       
53
54
55        Add(tähtäin, 1);
56    }
57
58    void LuoAmmusMittari()
59    {
60        ammusmittari = new PhysicsObject(300, 300);
61
62
63    }
64
65    void HeilutaTähtäintä(Timer sender)
66    {
67       
68
69    }
70
71    void LuoKenttä(double painovoima)
72    {
73        Level.BackgroundColor = Color.Black;
74        Gravity = new Vector(0.0, painovoima);
75
76        liekki = new Flame(savuHiukkanen);
77        rajahdys = new ExplosionSystem(räjähdysHiukkanen, pMaxMaara);
78        Add(rajahdys);
79    }
80
81    void AsetaOhjaimet()
82    {
83        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
84        Keyboard.Listen(Key.Space, ButtonState.Down, AimBot, null);
85        Keyboard.Listen(Key.R, ButtonState.Pressed, LataaAse, "Lataa ase");
86 
87
88 
89
90
91    }
92
93    void LataaAse()
94    {
95        Timer.SingleShot(2.0, LataaAse2);
96       
97    }
98
99    void LataaAse2()
100    {
101        tähtäin.Image = tähtäimenKuva;
102    }
103
104    void AimBot()
105    {
106        tähtäin.Position = maalitaulu.Position;
107    }
108
109    void Ammu()
110    {
111        if (tähtäin.Image == tähtäimenLatausKuva)
112        {
113            MessageDisplay.TextColor = Color.White;
114            MessageDisplay.Add(" You have no ammo. Press R to reload weapon.");
115        }
116
117        else
118        {
119            liekki = new Flame(savuHiukkanen);
120            Add(liekki);
121            Timer.SingleShot(2.0, RajaytaTaulu);
122            tähtäin.Image = tähtäimenLatausKuva;
123        }
124    }
125
126    void RajaytaTaulu()
127    {
128        double x = maalitaulu.X;
129        double y = maalitaulu.Y;
130        rajahdys.AddEffect(x, y, 200);
131        maalitaulu.Destroy();
132       
133        Timer.SingleShot(1.0, SammutaLiekki);
134       
135
136
137    }
138
139    void SammutaLiekki()
140    {
141        liekki.Destroy();
142        liekki = new Flame(savuHiukkanen);
143        grav = grav + 20;
144        LuoMaalitaulu(RandomGen.NextDouble(-400.0, 400.0), 200.0);
145       
146       
147    }
148
149    void LuoMaalitaulu( double x, double y )
150    {
151        maalitaulu = new PhysicsObject( 100.0, 100.0);
152        maalitaulu.Image = taulunKuva;
153        maalitaulu.X = x;
154        maalitaulu.Y = y;
155        maalitaulu.Mass = 5000;
156       
157
158        Mouse.ListenOn(maalitaulu, MouseButton.Left, ButtonState.Pressed, Ammu, null);
159       
160        Add(maalitaulu);
161        //maalitaulu.Hit(new Vector(0, -8000));
162
163       
164
165    }
166
167    void LiikutaTähtäintä(AnalogState hiirenTila)
168    {
169        tähtäin.X = Mouse.PositionOnWorld.X;
170        tähtäin.Y = Mouse.PositionOnWorld.Y;
171
172        Vector hiirenLiike = hiirenTila.MouseMovement;
173
174    }
175
176    protected override void Update(Time time)
177    {
178
179        if (liekki != null)
180        {
181            liekki.Position = maalitaulu.Position;
182        }
183
184       
185       
186        base.Update(time);
187    }
188
189
190
191}
192
Note: See TracBrowser for help on using the repository browser.