public override void Update( GameTime gameTime, Model model, Game1 game ) { base.Update( gameTime, model, game ); foreach( EntityEnemy enemy in model.Enemies ) if( !_enemies.Contains( enemy ) && Collision( enemy ) ) { _enemies.Add( enemy ); enemy.DealDamage( this ); } }
public override void Update( GameTime gameTime, Model model, Game1 game ) { if( model.DisplayingMessage ) return; _updateTimer += gameTime.ElapsedGameTime.Milliseconds * 0.001f; if( _updateTimer >= _coolDown ) { model.Add( new EntityEnemyZombee( new Vector2( Position.X, Position.Y ) ) ); _updateTimer = 0f; } }
public override void Update( GameTime gameTime, Model model, Game1 game ) { base.Update( gameTime, model, game ); foreach( EntityEnemy enemy in model.Enemies ) if( !model.DisplayingMessage && Collision( enemy ) ) { IsAlive = false; model.Bullets.Remove( this ); enemy.DealDamage( this ); return; } }
public override void Update( GameTime gameTime, Model model, Game1 game ) { UpdateMeleeTimer( gameTime ); EntityPlayer player = model.Player; _rotation = (float) Math.Atan2( player.Position.Y - Position.Y, player.Position.X - Position.X ); if( model.DisplayingMessage ) return; if( Collision( player ) ) { if( _canMeleeAttack ) { _canMeleeAttack = false; player.DealDamage( (int) Entity.PLAYER_HEALTH / 20 ); } return; } float xDifference = _speed * (float) Math.Cos( _rotation ); float yDifference = _speed * (float) Math.Sin( _rotation ); _sprite.X += xDifference; _sprite.Y += yDifference; // If there is a collision after the movement, undo the movement foreach( EntityEnemy enemy in model.Enemies ) if( enemy.IsAlive && PlayingCollision( enemy ) ) { _sprite.X -= xDifference; _sprite.Y -= yDifference; return; } }