private void RenderFigureDead(Figure2DAnimationController controller, Vector2 centeredPosition) { if (!(controller.DieAnimationTime >= Figure2DAnimationController.IdleAnimationTime)) { return; } if (controller.DieAnimationTime < Figure2DAnimationController.OverallDieAnimationDuration) { Game.SpriteBatch.Draw(_figureTexture, centeredPosition + _centeringOffset, new Rectangle(192, 224, 32, 32), Color.White * 0.5f, 0.0f, new Vector2(16), 1.0f, SpriteEffects.None, 0); } Game.SpriteBatch.Draw(_figureTexture, (controller.DieAnimationPosition).SnapToPixels(), new Rectangle(224, 224, 32, 32), Color.White, 0.0f, new Vector2(16), 1.0f, SpriteEffects.None, 0); if (controller.DieAnimationTime <= Figure2DAnimationController.OverallDieAnimationDuration) { var alpha = MathHelper.Clamp(((controller.DieAnimationTime - Figure2DAnimationController.IdleAnimationTime) * 3) / Figure2DAnimationController.DieAnimationDuration, 0, 1); Game.SpriteBatch.Draw(_figureTexture, new Rectangle((int)(centeredPosition.X - 16 + _centeringOffset.X), 0, 32, controller.YDistanceForDie - 7), new Rectangle(160, 224, 32, 32), Color.White * 0.5f * alpha); } }
private void RenderFigureAlive(Figure figure, Figure2DAnimationController controller) { Game.SpriteBatch.Draw(_figureTexture, (figure.Position + _centeringOffset).SnapToPixels(), _animationFrames[figure.Id - 1, (int)figure.Direction, controller.StepFrame], Color.White, 0.0f, new Vector2(FigureWidth * 0.5f, FigureHeight * 0.5f + 6), 1.5f, SpriteEffects.None, 0); }