#include "animationHandler.h" #include "animation.h" #include #include AnimationHandler * AnimationHandlerInit(Animation **animations, Texture2D **spriteTexture){ AnimationHandler *new = malloc(sizeof(AnimationHandler)); new->spriteTexture = spriteTexture; new->animations = animations; new->currentAnimation = 0; new->currentFrame = new->animations[new->currentAnimation]->head; new->forward = 1; new->deltaElapsed = 0; return new; } void AnimationUpdate(AnimationHandler *animationHandler){ animationHandler->deltaElapsed += GetFrameTime(); if(animationHandler->deltaElapsed >= 0.2){ if(animationHandler->forward == 1){ animationHandler->currentFrame = animationHandler->currentFrame->next; } else{ animationHandler->currentFrame = animationHandler->currentFrame->prev; } animationHandler->deltaElapsed = 0; } *(animationHandler->spriteTexture) = animationHandler->currentFrame->texture; } void AnimationReset(AnimationHandler *animationHandler){ animationHandler->currentFrame = animationHandler->animations[animationHandler->currentAnimation]->head; *(animationHandler->spriteTexture) = animationHandler->currentFrame->texture; } void AnimationChangeAnimation(AnimationHandler *animationHandler, int newAnimation){ if(animationHandler->currentAnimation != newAnimation){ animationHandler->currentAnimation = newAnimation; AnimationReset(animationHandler); } }