From e0324d092e71bd3df36104ead920feb0708ceb0c Mon Sep 17 00:00:00 2001 From: Barry Kane Date: Thu, 16 Mar 2023 00:16:39 +0000 Subject: [PATCH] Added simple animation to the sprites. --- 11-Ship-Accelerating-Frame-2.png | Bin 0 -> 6696 bytes ...celerating.png => 11-Ship-Accelerating.png | Bin ...clockwise.png => 11-Ship-Anticlockwise.png | Bin ...hip-Clockwise.png => 11-Ship-Clockwise.png | Bin 10-Ship-Idle.png => 11-Ship-Idle.png | Bin Spacewar.c | 29 +++++++++++------- 6 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 11-Ship-Accelerating-Frame-2.png rename 10-Ship-Accelerating.png => 11-Ship-Accelerating.png (100%) rename 10-Ship-Anticlockwise.png => 11-Ship-Anticlockwise.png (100%) rename 10-Ship-Clockwise.png => 11-Ship-Clockwise.png (100%) rename 10-Ship-Idle.png => 11-Ship-Idle.png (100%) diff --git a/11-Ship-Accelerating-Frame-2.png b/11-Ship-Accelerating-Frame-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ec49319d406a615eed192c809b509ce90c67c26f GIT binary patch literal 6696 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 V=9%Mo2P`3ogN>_ospXFN{{dh$r{4eo literal 0 HcmV?d00001 diff --git a/10-Ship-Accelerating.png b/11-Ship-Accelerating.png similarity index 100% rename from 10-Ship-Accelerating.png rename to 11-Ship-Accelerating.png diff --git a/10-Ship-Anticlockwise.png b/11-Ship-Anticlockwise.png similarity index 100% rename from 10-Ship-Anticlockwise.png rename to 11-Ship-Anticlockwise.png diff --git a/10-Ship-Clockwise.png b/11-Ship-Clockwise.png similarity index 100% rename from 10-Ship-Clockwise.png rename to 11-Ship-Clockwise.png diff --git a/10-Ship-Idle.png b/11-Ship-Idle.png similarity index 100% rename from 10-Ship-Idle.png rename to 11-Ship-Idle.png diff --git a/Spacewar.c b/Spacewar.c index 2e68620..065ee93 100644 --- a/Spacewar.c +++ b/Spacewar.c @@ -1,4 +1,4 @@ -// SDL Experiment 10, Barra Ó Catháin. +// SDL Experiment 11, Barra Ó Catháin. // =================================== #include #include @@ -109,10 +109,10 @@ int main(int argc, char ** argv) int width = 0, height = 0; long positionX = 0, positionY = 0; uint32_t rendererFlags = SDL_RENDERER_ACCELERATED; - double deltaTime = 0, gravityMagnitude = 0, gravityAcceleration = 0; uint64_t thisFrameTime = SDL_GetPerformanceCounter(), lastFrameTime = 0; + double deltaTime = 0, gravityMagnitude = 0, gravityAcceleration = 0, frameAccumulator = 0; bool quit = false, rotatingClockwise = false, rotatingAnticlockwise = false, accelerating = false; - xyVector positionVector = {100, 100}, velocityVector = {0, 0}, gravityVector = {0, 0}, engineVector = {0.1, 0}, upVector = {0, 0.1}; + xyVector positionVector = {100, 100}, velocityVector = {0, 0}, gravityVector = {0, 0}, engineVector = {0.08, 0}, upVector = {0, 0.1}; // Initialize the SDL library, video, sound, and input: if (SDL_Init(SDL_INIT_EVERYTHING) != 0) @@ -134,13 +134,14 @@ int main(int argc, char ** argv) SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, rendererFlags); // Load in all of our textures: - SDL_Texture * idleTexture, * acceleratingTexture, * clockwiseTexture, * anticlockwiseTexture, * currentTexture; - - idleTexture = IMG_LoadTexture(renderer, "./10-Ship-Idle.png"); - clockwiseTexture = IMG_LoadTexture(renderer, "./10-Ship-Clockwise.png"); - acceleratingTexture = IMG_LoadTexture(renderer, "./10-Ship-Accelerating.png"); - anticlockwiseTexture = IMG_LoadTexture(renderer, "./10-Ship-Anticlockwise.png"); + SDL_Texture * idleTexture, * acceleratingTexture, * clockwiseTexture, * anticlockwiseTexture, * currentTexture, + * acceleratingTexture2; + idleTexture = IMG_LoadTexture(renderer, "./11-Ship-Idle.png"); + clockwiseTexture = IMG_LoadTexture(renderer, "./11-Ship-Clockwise.png"); + acceleratingTexture = IMG_LoadTexture(renderer, "./11-Ship-Accelerating.png"); + anticlockwiseTexture = IMG_LoadTexture(renderer, "./11-Ship-Anticlockwise.png"); + acceleratingTexture2 = IMG_LoadTexture(renderer, "./11-Ship-Accelerating-Frame-2.png"); // Enable resizing the window: SDL_SetWindowResizable(window, SDL_TRUE); @@ -204,6 +205,7 @@ int main(int argc, char ** argv) case SDLK_UP: { accelerating = false; + frameAccumulator = 0; break; } default: @@ -231,7 +233,7 @@ int main(int argc, char ** argv) // Calculate the gravity between the star and ship: gravityAcceleration = (gravityMagnitude >= 45) ? - 0.5 * (2500 / pow(gravityMagnitude, 2)): + (2500 / pow(gravityMagnitude, 2)): 0; // Scale the vector: @@ -279,7 +281,12 @@ int main(int argc, char ** argv) if(accelerating) { addXYVectorDeltaScaled(&velocityVector, &engineVector, deltaTime); + frameAccumulator += deltaTime; currentTexture = acceleratingTexture; + if((long)frameAccumulator % 4) + { + currentTexture = acceleratingTexture2; + } } // Calculate the new position: @@ -319,5 +326,5 @@ int main(int argc, char ** argv) } // =========================================================================================== // Local Variables: -// compile-command: "gcc `sdl2-config --libs --cflags` SDL2-Experiment-10.c -lSDL2_image -lm" +// compile-command: "gcc `sdl2-config --libs --cflags` SDL2-Experiment-11.c -lSDL2_image -lm" // End: