Minor Fixes

This commit is contained in:
Isuru Samarathunga
2025-09-14 08:37:54 +05:30
parent 9ed9f83558
commit ad869ef71d

View File

@ -48,7 +48,8 @@ namespace ia::iae
VOID SpriteRendererComponent::SetActiveAnimation(IN Handle animation) VOID SpriteRendererComponent::SetActiveAnimation(IN Handle animation)
{ {
if(animation == m_activeAnimationHandle) return; if (animation == m_activeAnimationHandle)
return;
IA_RELEASE_ASSERT((animation != INVALID_HANDLE) && (animation < m_animations.size())); IA_RELEASE_ASSERT((animation != INVALID_HANDLE) && (animation < m_animations.size()));
m_prevAnimationKeyFrameIndex = 0; m_prevAnimationKeyFrameIndex = 0;
m_activeAnimation = m_animations[animation]; m_activeAnimation = m_animations[animation];
@ -66,10 +67,9 @@ namespace ia::iae
VOID SpriteRendererComponent::Draw() VOID SpriteRendererComponent::Draw()
{ {
const auto &animFrame = m_currentAnimationState; const auto &animFrame = m_currentAnimationState;
animFrame.Texture.Draw( animFrame.Texture.Draw(m_node->SortOffset(), m_node->GetPosition() + animFrame.Position,
m_node->SortOffset(), m_node->GetScale() * animFrame.Scale, m_node->GetRotation().z + animFrame.Rotation.z,
m_node->GetPosition() + animFrame.Position, m_node->GetScale() * animFrame.Scale, m_isFlippedH, m_isFlippedV, animFrame.ColorOverlay);
m_node->GetRotation().z + animFrame.Rotation.z, m_isFlippedH, m_isFlippedV, animFrame.ColorOverlay);
} }
VOID SpriteRendererComponent::UpdateAnimation() VOID SpriteRendererComponent::UpdateAnimation()
@ -82,12 +82,13 @@ namespace ia::iae
{ {
const auto t = m_timelinePosition / m_prevAnimationKeyFrame.Duration; const auto t = m_timelinePosition / m_prevAnimationKeyFrame.Duration;
#define INTERP_PROPERTY(name) \ #define INTERP_PROPERTY(name) \
m_currentAnimationState.name = iam::Lerp(m_prevAnimationKeyFrame.name, m_nextAnimationKeyFrame.name, t); m_currentAnimationState.name = \
m_prevAnimationKeyFrame.name + (m_nextAnimationKeyFrame.name - m_prevAnimationKeyFrame.name) * t;
//INTERP_PROPERTY(Position); [IATODO] INTERP_PROPERTY(Position);
//INTERP_PROPERTY(Rotation); INTERP_PROPERTY(Rotation);
//INTERP_PROPERTY(Scale); INTERP_PROPERTY(Scale);
//INTERP_PROPERTY(ColorOverlay); INTERP_PROPERTY(ColorOverlay);
#undef INTERP_PROPERTY #undef INTERP_PROPERTY
} }