From 64bb931e18825b285dd93d0b9987ef72ece15ab4 Mon Sep 17 00:00:00 2001 From: nathansmith117 Date: Wed, 14 Feb 2024 17:06:35 -0700 Subject: Working on animation stuff --- src/animation.c | 25 +++++++++++++++++++++++++ src/animation.h | 25 +++++++++++++++++++++++++ src/assets.c | 1 + src/assets.h | 10 ++++++++++ 4 files changed, 61 insertions(+) create mode 100644 src/animation.c create mode 100644 src/animation.h create mode 100644 src/assets.c create mode 100644 src/assets.h (limited to 'src') diff --git a/src/animation.c b/src/animation.c new file mode 100644 index 0000000..f173401 --- /dev/null +++ b/src/animation.c @@ -0,0 +1,25 @@ +#include "animation.h" +#include "game.h" +#include + +Animation loadAnimationFromFile(const char* fileName) +{ + Animation animation; + + // Load image in. + animation.image = LoadImageAnim(fileName, &animation.frameCount); + animation.texture = LoadTextureFromImage(animation.image); + + // Set options. + animation.currentFrame = 0; + animation.delay = ANIMATION_DEFAULT_DELAY; + animation.lastTime = -1.0; // -1.0 means there wasn't a last time. + + return animation; +} + +void freeAnimation(Animation* animation) +{ + UnloadImage(animation->image); + UnloadTexture(animation->texture); +} diff --git a/src/animation.h b/src/animation.h new file mode 100644 index 0000000..8ec918f --- /dev/null +++ b/src/animation.h @@ -0,0 +1,25 @@ +#include "gameCommon.h" + +#define ANIMATION_DEFAULT_DELAY 0.1 + +#ifndef ANIMATION_H +#define ANIMATION_H + +typedef struct Animation { + // Frame stuff. + int frameCount; + int currentFrame; + + // The animation is stored in a image and the texture is used for fast rendering. + Image image; + Texture texture; + + // Timing the frames. + double delay; + double lastTime; +} Animation; + +Animation loadAnimationFromFile(const char* fileName); +void freeAnimation(Animation* animation); + +#endif diff --git a/src/assets.c b/src/assets.c new file mode 100644 index 0000000..4ed3d53 --- /dev/null +++ b/src/assets.c @@ -0,0 +1 @@ +#include "assets.h" diff --git a/src/assets.h b/src/assets.h new file mode 100644 index 0000000..9846f3b --- /dev/null +++ b/src/assets.h @@ -0,0 +1,10 @@ +#include "gameCommon.h" + +#define ASSETS_NAME_MAX 100 +#define IMAGE_ASSET_COUNT 4 +#define ANIMATION_ASSET_COUNT 2 + +#ifndef ASSETS_H +#define ASSETS_H + +#endif -- cgit v1.2.3