From 392dc964d94c211ac6af98e02c56371d6bb8a3cd Mon Sep 17 00:00:00 2001 From: Rosyid Haryadi Date: Tue, 2 Jan 2024 22:21:38 +0700 Subject: refactor --- src/config.c | 13 +++++++++++++ src/config.h | 18 ++++++++++++++++++ src/main.c | 48 +++--------------------------------------------- src/utilities.c | 30 ++++++++++++++++++++++++++++++ src/utilities.h | 15 +++++++++++++++ 5 files changed, 79 insertions(+), 45 deletions(-) create mode 100644 src/config.c create mode 100644 src/config.h create mode 100644 src/utilities.c create mode 100644 src/utilities.h (limited to 'src') diff --git a/src/config.c b/src/config.c new file mode 100644 index 0000000..21e55f1 --- /dev/null +++ b/src/config.c @@ -0,0 +1,13 @@ +// +// Created by sid on 1/2/24. +// +#include "config.h" + +Config config = { + 800, + 600, + 800 / 2, + 600 / 2, + "Gw bikin apaan sih", + 60 +}; \ No newline at end of file diff --git a/src/config.h b/src/config.h new file mode 100644 index 0000000..8cbec33 --- /dev/null +++ b/src/config.h @@ -0,0 +1,18 @@ +// +// Created by sid on 1/2/24. +// + +#ifndef HMMM_CONFIG_H +#define HMMM_CONFIG_H + +typedef struct Config { + int SCREEN_WIDTH; + int SCREEN_HEIGHT; + int ORIGIN_X; + int ORIGIN_Y; + char TITLE[20]; + int TARGET_FPS; +} Config; +extern Config config; + +#endif //HMMM_CONFIG_H diff --git a/src/main.c b/src/main.c index 77e95bc..992982f 100644 --- a/src/main.c +++ b/src/main.c @@ -2,28 +2,10 @@ #include "raylib.h" #include "raymath.h" - -typedef struct Config { - int SCREEN_WIDTH; - int SCREEN_HEIGHT; - int ORIGIN_X; - int ORIGIN_Y; - char TITLE[20]; - int TARGET_FPS; -} Config; -Config config = { - 800, - 600, - 800 / 2, - 600 / 2, - "Gw bikin apaan sih", - 60 -}; +#include "utilities.h" +#include "config.h" void doInitialization(); -Vector2 toCenter(Vector2 vector); -Vector2 toTopLeft(Vector2 vector); -Vector2 angle2HeadingVector(float angle); typedef struct Object { Vector2 pos; @@ -64,30 +46,6 @@ void doInitialization() { SetTargetFPS(config.TARGET_FPS); } -Vector2 toCenter(Vector2 vector) { - // Used only for drawing, any other calculation using raylib style coordinate (0, 0) top left. x = left-right, y = top-bottom - return (Vector2) { - vector.x + (float)config.ORIGIN_X, - (-1 * vector.y) + (float)config.ORIGIN_Y - }; -} - -Vector2 toTopLeft(Vector2 vector) { - return (Vector2) { - vector.x - (float)config.ORIGIN_X, - (-1 * vector.y) - (float)config.ORIGIN_Y - }; -} - -Vector2 angle2HeadingVector(float angle) { - // angle in degree - angle = angle * (float)M_PI / 180; - return (Vector2) { - cosf(angle), - sinf(angle) - }; -} - void doUpdate(Object *object) { float dt = GetFrameTime(); config.SCREEN_WIDTH = GetScreenWidth(); @@ -106,7 +64,7 @@ void doUpdate(Object *object) { if (nextPos.y + object->radius > (float)config.SCREEN_HEIGHT / 2) nextPos.y = ((float)config.SCREEN_HEIGHT / 2) - object->radius; object->pos = nextPos; } else { - object->headingAngle = fmodf(object->headingAngle + 15, 360.0f); +// object->headingAngle = fmodf(object->headingAngle + 15, 360.0f); object->headingAngle = (float)rand()/(float)(RAND_MAX/360); object->distanceTraveled = 0; } diff --git a/src/utilities.c b/src/utilities.c new file mode 100644 index 0000000..4823644 --- /dev/null +++ b/src/utilities.c @@ -0,0 +1,30 @@ +// +// Created by sid on 1/2/24. +// +#include "raymath.h" +#include "utilities.h" +#include "config.h" + +Vector2 toCenter(Vector2 vector) { + // Used only for drawing, any other calculation using raylib style coordinate (0, 0) top left. x = left-right, y = top-bottom + return (Vector2) { + vector.x + (float)config.ORIGIN_X, + (-1 * vector.y) + (float)config.ORIGIN_Y + }; +} + +Vector2 toTopLeft(Vector2 vector) { + return (Vector2) { + vector.x - (float)config.ORIGIN_X, + (-1 * vector.y) - (float)config.ORIGIN_Y + }; +} + +Vector2 angle2HeadingVector(float angle) { + // angle in degree + angle = angle * (float)M_PI / 180; + return (Vector2) { + cosf(angle), + sinf(angle) + }; +} \ No newline at end of file diff --git a/src/utilities.h b/src/utilities.h new file mode 100644 index 0000000..f945803 --- /dev/null +++ b/src/utilities.h @@ -0,0 +1,15 @@ +// +// Created by sid on 1/2/24. +// + +#ifndef HMMM_UTILITIES_H +#define HMMM_UTILITIES_H + +#include "raymath.h" + +Vector2 toCenter(Vector2 vector); +Vector2 toTopLeft(Vector2 vector); +Vector2 angle2HeadingVector(float angle); + + +#endif //HMMM_UTILITIES_H -- cgit v1.2.3-70-g09d2