- Timestamp:
- 2012-06-06 13:54:15 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/23/JimB/NameInPending/NameinPending/NameinPending/NameinPending/NameinPending.cs
r2810 r2813 10 10 { 11 11 public IntMeter Elamat; 12 public Explosion ViimeisinRajahdys = null; 13 public bool aseValmiina = true; 14 public bool naattiValmiina = true; 12 15 13 16 public PeliUkko(double leveys, double korkeus) … … 25 28 PeliUkko pelaaja1, pelaaja2, pelaaja3, pelaaja4; 26 29 double ampumisnopeus = 450; 30 ExplosionSystem NaattiPoks; 31 PhysicsObject naatti; 32 27 33 28 34 public override void Begin() 29 35 { 36 NaattiPoks = new ExplosionSystem(LoadImage("naattishard"), 375); 37 Add(NaattiPoks); 30 38 // TODO: Kirjoita ohjelmakoodisi tähän 31 39 LuoKentta(); 32 40 33 34 35 36 37 38 41 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 39 42 } 43 40 44 void LuoKentta() 41 45 { … … 72 76 Keyboard.Listen(Key.W, ButtonState.Released, Liike, null, pelaaja1, new Vector(0, 0)); 73 77 Keyboard.Listen(Key.Q, ButtonState.Down, Ammu, null, pelaaja1); 78 Keyboard.Listen(Key.E, ButtonState.Down, Heita, null, pelaaja1); 74 79 } 75 80 void LuoPelaaja2(Vector paikka, double leveys, double korkeus) … … 165 170 ammus.Destroy(); 166 171 } 167 bool aseReady = true;168 void Ammu(P hysicsObjectpelaaja)169 { 170 if ( aseReady)172 173 void Ammu(PeliUkko pelaaja) 174 { 175 if (pelaaja.aseValmiina) 171 176 { 172 177 PhysicsObject bullet = new PhysicsObject(LoadImage("bullet")); … … 181 186 Vector suunta = Vector.FromLengthAndAngle(ampumisnopeus, pelaaja.Angle + Angle.RightAngle); 182 187 bullet.Hit(suunta); 183 aseReady = false; 184 Timer.SingleShot(0.5, delegate { aseReady = true; }); 185 } 186 } 187 bool naattiReady = true; 188 void Heita(PhysicsObject pelaaja) 189 { 190 if (naattiReady) 191 { 192 PhysicsObject naatti = new PhysicsObject(LoadImage("naatti")); 188 pelaaja.aseValmiina = false; 189 Timer.SingleShot(0.5, delegate { pelaaja.aseValmiina = true; }); 190 } 191 } 192 void Heita(PeliUkko pelaaja) 193 { 194 if (pelaaja.naattiValmiina) 195 { 196 naatti = new PhysicsObject(LoadImage("naatti")); 193 197 Add(naatti); 194 198 naatti.Tag = "naatti"; … … 199 203 Vector suunta = Vector.FromLengthAndAngle(ampumisnopeus, pelaaja.Angle + Angle.RightAngle); 200 204 naatti.Hit(suunta); 201 naattiReady = false; 202 Timer.SingleShot(10.5, delegate { naattiReady = true; }); 203 } 204 205 } 205 pelaaja.naattiValmiina = false; 206 Timer.SingleShot(2.5, delegate { KranaattiRajahti(naatti.X, naatti.Y, 375); naatti.Destroy(); }); 207 Timer.SingleShot(6.5, delegate { pelaaja.naattiValmiina = true; }); 208 } 209 210 } 211 void KranaattiRajahti(double x, double y, int numberOfParticles) 212 { 213 NaattiPoks.X = x; 214 NaattiPoks.Y = y; 215 NaattiPoks.MinScale = 1; 216 NaattiPoks.MaxScale = 10; 217 NaattiPoks.AddEffect(x, y, numberOfParticles); 218 Explosion e = new Explosion(65); 219 Add(e); 220 e.Position = new Vector(x, y); 221 e.ShockwaveReachesObject += delegate(IPhysicsObject kohde, Vector suunta) { ShockHit(kohde, suunta, e); }; 222 } 223 224 void ShockHit(IPhysicsObject kohde, Vector suunta, Explosion rajahdys) 225 { 226 if (!(kohde is PeliUkko)) return; 227 PeliUkko ukko = kohde as PeliUkko; 228 if (ukko.ViimeisinRajahdys == rajahdys) return; 229 230 double etaisyys = Vector.Distance(ukko.Position, rajahdys.Position); 231 ukko.Elamat.Value -= (int) Math.Floor( 1500/etaisyys); 232 ukko.ViimeisinRajahdys = rajahdys; 233 } 234 206 235 void Liike(PeliUkko pelaaja, Vector nopeus) 207 236 {
Note: See TracChangeset
for help on using the changeset viewer.