public void Update(GameTime gameTime) { if (scored) { Globals.HandleTimer(ref scoreDelay, gameTime, Restart); } Sprite.UpdateAll(gameTime); Globals.Map.Update(); Explosion.CleanUp(); Bomb.CleanUp(); Powerup.CleanUp(); playerList.RemoveAll(p => p.Dead); if (playerList.Count == 1 && !scored) { winner = playerList[0]; score[winner.Id] += 1; scoreDelay = 2000; scored = true; } if (playerList.Count == 0 && !scored) { scoreDelay = 2000; scored = true; } }
protected void handleDeath(GameTime gameTime) { if (Dead) { return; } Globals.HandleTimer(ref time, gameTime, Die); }
public override void Update(GameTime gameTime) { if (Dead) { return; } Globals.HandleTimer(ref time, gameTime, Die); List <Tile> tiles = Globals.Map.Collide(this); foreach (Tile t in tiles.Where(t => t.Destroyable)) { t.Die(); } }
public override void Update(GameTime gameTime) { Box.Y = Globals.WrappedY(Box.Y + (int)vy); vy += gravity; if (vy > maxV) { vy = maxV; } if (Globals.Map.Collide(this).Any()) { if (vy > 0) { Box.Y = (Box.Y / Globals.TileHeight) * Globals.TileHeight + (Globals.TileHeight - Box.Height); jumping = false; } else { Box.Y = ((Box.Y / Globals.TileHeight) + 1) * Globals.TileHeight; } Box.Y = Globals.WrappedY(Box.Y); vy = 0; } foreach (Explosion e in Explosion.ExplosionList) { if (Collides(e)) { Dead = true; } } foreach (Powerup p in Powerup.PowerupList) { if (Collides(p)) { powerupSound.Play(); p.Effect(this); p.Dead = true; } } Globals.HandleTimer(ref bombCooldown, gameTime); KeyboardState kbs = Keyboard.GetState(); if (kbs.IsKeyDown(controls["right"])) { WalkRight(); } if (kbs.IsKeyDown(controls["left"])) { WalkLeft(); } if (kbs.IsKeyDown(controls["jump"])) { Jump(); } /* * if (kbs.IsKeyDown(Keys.Q)) * { * BombType = (BombTypes)(((int)BombType + 1) % Enum.GetValues(typeof(BombTypes)).GetLength(0)); * } */ if (kbs.IsKeyDown(controls["bomb"]) && bombCooldown == 0) { bombHold += gameTime.ElapsedGameTime.Milliseconds; if (bombHold > bombHoldMax) { bombHold = bombHoldMax; } } if (kbs.IsKeyUp(controls["bomb"]) && bombHold > 0) { throwSound.Play(); if (PushBombs() == 0) { Bomb b; float throwPower = ThrowModifier * (float)bombHold / (float)bombHoldMax; if (BombType == BombTypes.Bomb) { b = new Bomb(Box, ExplosionSize); b.Throw(throwPower, Direction); } else if (BombType == BombTypes.FloatingBomb) { b = new FloatingBomb(Box, ExplosionSize); b.Throw(throwPower, Direction); } else if (BombType == BombTypes.StickyBomb) { b = new StickyBomb(Box, ExplosionSize); b.Throw(throwPower, Direction); } } bombCooldown = 200; bombHold = 0; } }