diff options
author | Rosyid Haryadi <rosyid_haryadi@protonmail.com> | 2024-01-02 22:21:38 +0700 |
---|---|---|
committer | Rosyid Haryadi <rosyid_haryadi@protonmail.com> | 2024-01-02 22:21:38 +0700 |
commit | 392dc964d94c211ac6af98e02c56371d6bb8a3cd (patch) | |
tree | 22cc4da1cad8e0957a54870015cb9d242fdc8696 | |
parent | e055021f3fb031c9d8851c3237019f7f0db55f77 (diff) |
refactori-dont-know
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/config.c | 13 | ||||
-rw-r--r-- | src/config.h | 18 | ||||
-rw-r--r-- | src/main.c | 48 | ||||
-rw-r--r-- | src/utilities.c | 30 | ||||
-rw-r--r-- | src/utilities.h | 15 |
6 files changed, 84 insertions, 46 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 863e249..91136df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,11 @@ cmake_minimum_required(VERSION 3.16) project(hmmm C) -set(SOURCE_FILES src/main.c) +set(SOURCE_FILES src/main.c + src/config.h + src/utilities.h + src/utilities.c + src/config.c) set(INCLUDE_DIR include) set(RAYLIB_DIR ${CMAKE_SOURCE_DIR}/lib) 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 @@ -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 |