summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosyid Haryadi <rosyid_haryadi@protonmail.com>2024-01-02 22:21:38 +0700
committerRosyid Haryadi <rosyid_haryadi@protonmail.com>2024-01-02 22:21:38 +0700
commit392dc964d94c211ac6af98e02c56371d6bb8a3cd (patch)
tree22cc4da1cad8e0957a54870015cb9d242fdc8696
parente055021f3fb031c9d8851c3237019f7f0db55f77 (diff)
refactori-dont-know
-rw-r--r--CMakeLists.txt6
-rw-r--r--src/config.c13
-rw-r--r--src/config.h18
-rw-r--r--src/main.c48
-rw-r--r--src/utilities.c30
-rw-r--r--src/utilities.h15
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
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