#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->currentType = 0; new->currentDirection = 0; new->currentFrame = new->animations[new->currentType][new->currentDirection]->head; new->spriteTexture = spriteTexture; 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->currentType][animationHandler->currentDirection]->head; *(animationHandler->spriteTexture) = animationHandler->currentFrame->texture; } void AnimationChangeAnimation(AnimationHandler *animationHandler, int animationType, int direction){ if(animationHandler->currentType != animationType || animationHandler->currentDirection != direction){ animationHandler->currentType = animationType; animationHandler->currentDirection = direction; AnimationReset(animationHandler); } } void AnimationChangeDirection(AnimationHandler *animationHandler, int direction){ if(animationHandler->currentDirection != direction){ animationHandler->currentDirection = direction; AnimationReset(animationHandler); } }