From b4dc7cd326555d5cb9eb4cf854f060dc38ecc5f5 Mon Sep 17 00:00:00 2001 From: Barry Kane Date: Thu, 23 Mar 2023 20:08:51 +0000 Subject: [PATCH] Replaced the star with the black hole sprite. --- Images/Black-Hole.png | Bin 0 -> 9379 bytes Spacewar.c | 28 +++++++++++++++++++--------- 2 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 Images/Black-Hole.png diff --git a/Images/Black-Hole.png b/Images/Black-Hole.png new file mode 100644 index 0000000000000000000000000000000000000000..ae35e54de6e5162002937a22d4db6daa1f13d2cf GIT binary patch literal 9379 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 literal 0 HcmV?d00001 diff --git a/Spacewar.c b/Spacewar.c index 452b04d..39efedb 100644 --- a/Spacewar.c +++ b/Spacewar.c @@ -227,16 +227,23 @@ int main(int argc, char ** argv) // Load in all of our textures: - SDL_Texture * idleTexture, * acceleratingTexture, * clockwiseTexture, * anticlockwiseTexture, * currentTexture, - * acceleratingTexture2; - + SDL_Texture * blackHoleTexture, * idleTexture, * acceleratingTexture, * clockwiseTexture, * anticlockwiseTexture, + * currentTexture, * acceleratingTexture2; + idleTexture = IMG_LoadTexture(renderer, "./Images/Ship-Idle.png"); + blackHoleTexture = IMG_LoadTexture(renderer, "./Images/Black-Hole.png"); clockwiseTexture = IMG_LoadTexture(renderer, "./Images/Ship-Clockwise.png"); acceleratingTexture = IMG_LoadTexture(renderer, "./Images/Ship-Accelerating.png"); anticlockwiseTexture = IMG_LoadTexture(renderer, "./Images/Ship-Anticlockwise.png"); - acceleratingTexture2 = IMG_LoadTexture(renderer, "./Images/Ship-Accelerating-Frame-2.png"); + acceleratingTexture2 = IMG_LoadTexture(renderer, "./Images/Ship-Accelerating-Frame-2.png"); currentTexture = acceleratingTexture; + SDL_Rect blackHoleRectangle; + blackHoleRectangle.x = 0; + blackHoleRectangle.y = 0; + SDL_QueryTexture(blackHoleTexture, NULL, NULL, NULL, &blackHoleRectangle.h); + SDL_QueryTexture(blackHoleTexture, NULL, NULL, &blackHoleRectangle.w, NULL); + lastFrameTime = SDL_GetPerformanceCounter(); thisFrameTime = SDL_GetPerformanceCounter(); @@ -343,13 +350,16 @@ int main(int argc, char ** argv) SDL_RenderCopyEx(renderer, currentTexture, NULL, &shipB.rectangle, angleBetweenVectors(&shipB.engine, &upVector) + 90, NULL, 0); + // Draw the black hole: + blackHoleRectangle.x = ((long)(starPositionX - shipA.position.xComponent - (blackHoleRectangle.w / 2)) + width/2) + - (shipA.velocity.xComponent * 15); + blackHoleRectangle.y = ((long)(starPositionY - shipA.position.yComponent - (blackHoleRectangle.h / 2)) + height/2) + - (shipA.velocity.yComponent * 15); + SDL_RenderCopy(renderer, blackHoleTexture, NULL, &blackHoleRectangle); + // Set the colour to yellow: SDL_SetRenderDrawColor(renderer, 255, 255, 0, 255); - - // Draw a circle as the star: - DrawCircle(renderer, (long)(starPositionX - shipA.position.xComponent) + width/2 - (shipA.velocity.xComponent * 15), - (long)(starPositionY - shipA.position.yComponent) + height/2 - (shipA.velocity.yComponent * 15), 50); - + // Draw a line representing the velocity: SDL_RenderDrawLine(renderer, width/2 - (shipA.velocity.xComponent * 15), height/2 - (shipA.velocity.yComponent * 15),