protected override void SetAnimations() { if (ObstacleType == ObstacleType.FI) { AnimationManager.Play(Animations["IDLE"]); } if (ObstacleType == ObstacleType.PB) { AnimationManager.Play(Animations["RIGHT"]); m_PBDirection = PBDirection.RIGHT; } }
public override void Update(GameTime gameTime) { if (ObstacleType == ObstacleType.PB) { if (TheLastSliceGame.LevelManager.CurrentLevelNum > 2) { Lerper.Acceleration = LerperAccelerationFast; Lerper.MinVelocity = LerperMinVelocitFast; Lerper.MaxVelocity = LerperMaxVelocitFast; } switch (m_PBDirection) { case PBDirection.LEFT: Position = new Vector2(Lerper.Lerp(Position.X, PBInitialPos.X), Position.Y); break; case PBDirection.RIGHT: Position = new Vector2(Lerper.Lerp(Position.X, PBInitialPos.X + PBTravelDistanceX), Position.Y); break; default: break; } if (Position.X >= PBInitialPos.X + PBTravelDistanceX) { m_PBDirection = PBDirection.LEFT; AnimationManager.Play(Animations["LEFT"]); } if (Position.X <= PBInitialPos.X) { m_PBDirection = PBDirection.RIGHT; AnimationManager.Play(Animations["RIGHT"]); } CollisionComponent = new Rectangle((int)Position.X, (int)Position.Y, Width, Height); if (IsColliding(TheLastSliceGame.Instance.Player)) { TheLastSliceGame.Instance.Player.OnCollided(this); CollisionComponent = new Rectangle(0, 0, Width, Height); } } base.Update(gameTime); }