summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoredGuy <osome3717@gmail.com>2025-01-15 18:12:03 +0300
committerBoredGuy <osome3717@gmail.com>2025-01-15 18:12:03 +0300
commit6a6f7be378bee10679e9e1ea61a70b00b4731589 (patch)
tree8017237147d72e455d6479734579df39eefd2853
parent5f7e0d8cf88d0adb9739e2cc7e26ba26243975f8 (diff)
Scuffed Resource SystemHEADmaster
I am super proud of this one TBH
-rwxr-xr-xWeek1-Pacman/build/pacmanbin0 -> 64960 bytes
-rw-r--r--Week1-Pacman/level33
-rw-r--r--Week1-Pacman/src/enemy.h25
-rw-r--r--Week1-Pacman/src/facing.h11
-rw-r--r--Week1-Pacman/src/import_resources.h9
-rw-r--r--Week1-Pacman/src/main.c5
-rw-r--r--Week1-Pacman/src/map.c14
-rw-r--r--Week1-Pacman/src/map.h1
-rw-r--r--Week1-Pacman/src/pacman.c14
-rw-r--r--Week1-Pacman/src/pacman.h9
-rw-r--r--Week1-Pacman/src/resources.c30
-rw-r--r--Week1-Pacman/src/resources.h9
12 files changed, 123 insertions, 37 deletions
diff --git a/Week1-Pacman/build/pacman b/Week1-Pacman/build/pacman
new file mode 100755
index 0000000..e332982
--- /dev/null
+++ b/Week1-Pacman/build/pacman
Binary files differ
diff --git a/Week1-Pacman/level b/Week1-Pacman/level
new file mode 100644
index 0000000..7232e8b
--- /dev/null
+++ b/Week1-Pacman/level
@@ -0,0 +1,33 @@
+build/pacman
+283,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,286
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,358
+391,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,394
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
diff --git a/Week1-Pacman/src/enemy.h b/Week1-Pacman/src/enemy.h
new file mode 100644
index 0000000..a82a58e
--- /dev/null
+++ b/Week1-Pacman/src/enemy.h
@@ -0,0 +1,25 @@
+#ifndef ENEMY_H_
+#define ENEMY_H_
+
+#include "facing.h"
+
+enum color {BLUE, RED, PINK, ORANGE};
+
+struct enemy_init {
+ int initial_xpos;
+ int initial_ypos;
+
+ enum facing initial_facing;
+ enum color initial_color;
+};
+
+struct enemy {
+ int xpos;
+ int ypos;
+
+ enum facing facing;
+};
+
+void init_enemy(struct enemy* enemy);
+
+#endif // ENEMY_H_
diff --git a/Week1-Pacman/src/facing.h b/Week1-Pacman/src/facing.h
new file mode 100644
index 0000000..fb772fa
--- /dev/null
+++ b/Week1-Pacman/src/facing.h
@@ -0,0 +1,11 @@
+#ifndef FACING_H_
+#define FACING_H_
+
+enum facing {
+ FACING_RIGHT,
+ FACING_DOWN,
+ FACING_LEFT,
+ FACING_UP
+};
+
+#endif // FACING_H_
diff --git a/Week1-Pacman/src/import_resources.h b/Week1-Pacman/src/import_resources.h
new file mode 100644
index 0000000..c674396
--- /dev/null
+++ b/Week1-Pacman/src/import_resources.h
@@ -0,0 +1,9 @@
+#ifndef IMPORT_RESOURCES_H_
+#define IMPORT_RESOURCES_H_
+
+#include <SDL2/SDL.h>
+
+extern SDL_Texture* character_spritesheet;
+extern SDL_Texture* map_texture;
+
+#endif // IMPORT_RESOURCES_H_
diff --git a/Week1-Pacman/src/main.c b/Week1-Pacman/src/main.c
index 6ae2fde..b36286e 100644
--- a/Week1-Pacman/src/main.c
+++ b/Week1-Pacman/src/main.c
@@ -5,6 +5,7 @@
#include "pacman.h"
#include "map.h"
#include "collision.h"
+#include "resources.h"
#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600
@@ -28,19 +29,17 @@ int main(int argc, char** argv) {
-1,
SDL_RENDERER_PRESENTVSYNC |
SDL_RENDERER_ACCELERATED);
+ load_resources(&demo);
bool running = true;
SDL_Event e;
struct pacman pacman = {0};
- map_init(&demo);
-
struct map map = {0};
load_map("assets/Maps/maze.csv", &map);
keyboard =
SDL_GetKeyboardState(NULL);
- load_pacman_spritesheet(&demo);
init_pacman(&pacman, &(struct pacman_init) {
.initial_xpos = 100,
.initial_ypos = 200,
diff --git a/Week1-Pacman/src/map.c b/Week1-Pacman/src/map.c
index d5efc9d..9f426cb 100644
--- a/Week1-Pacman/src/map.c
+++ b/Week1-Pacman/src/map.c
@@ -3,11 +3,10 @@
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include "map.h"
+#include "import_resources.h"
#define TILE_SIDE 8
-SDL_Texture* map_texture = NULL;
-
void add_map_row(const char* string, struct map* map);
void load_map(const char* filename, struct map* map) {
@@ -121,14 +120,3 @@ void draw_map(struct demo* demo, struct map* map) {
demo_rendercopy(demo, map_texture, &s, &d);
}
}
-
-void map_init(struct demo* demo) {
- map_texture =
- IMG_LoadTexture(demo->ren, "assets/Sprites/Tileset.png");
-
- if(map_texture == NULL) {
- printf("Failed to load map tileset, error: %s, exitting!\n",
- SDL_GetError());
- exit(1);
- }
-}
diff --git a/Week1-Pacman/src/map.h b/Week1-Pacman/src/map.h
index 0721a94..7562627 100644
--- a/Week1-Pacman/src/map.h
+++ b/Week1-Pacman/src/map.h
@@ -18,6 +18,5 @@ struct map {
*/
void load_map(const char* filename, struct map* map);
void draw_map(struct demo* demo, struct map* map);
-void map_init(struct demo* demo);
#endif // MAP_H_
diff --git a/Week1-Pacman/src/pacman.c b/Week1-Pacman/src/pacman.c
index 0ec6670..1ca6ca7 100644
--- a/Week1-Pacman/src/pacman.c
+++ b/Week1-Pacman/src/pacman.c
@@ -4,6 +4,7 @@
#include <stdbool.h>
#include "pacman.h"
#include "collision.h"
+#include "import_resources.h"
#define PACMAN_SPEED 261
#define PACMAN_SIDE 40
@@ -11,26 +12,15 @@
extern const Uint8* keyboard;
-SDL_Texture* pacman_texture;
-
SDL_Rect* get_colliding_tile_raw(SDL_Rect*, struct map* map);
SDL_Rect* get_colliding_tile(struct pacman* pacman, struct map* map);
void rect_step_one_pixel(SDL_Rect* r, enum facing);
-void load_pacman_spritesheet(struct demo* demo) {
- if(!pacman_texture) {
- pacman_texture =
- IMG_LoadTexture(demo->ren, "assets/Sprites/sprites.png");
-
- assert(pacman_texture);
- }
-}
-
void init_pacman(struct pacman* pacman, struct pacman_init* init) {
for(int i = 0; i < 4; i++)
init_animation(&pacman->animations[i], &(struct animation_init){
- .spritesheet_texture = pacman_texture,
+ .spritesheet_texture = character_spritesheet,
.initial_angle = 90.0 * i,
.initial_frame_count = 3,
diff --git a/Week1-Pacman/src/pacman.h b/Week1-Pacman/src/pacman.h
index 65137cd..07096a8 100644
--- a/Week1-Pacman/src/pacman.h
+++ b/Week1-Pacman/src/pacman.h
@@ -5,13 +5,7 @@
#include "animation.h"
#include "demo.h"
#include "map.h"
-
-enum facing {
- FACING_RIGHT,
- FACING_DOWN,
- FACING_LEFT,
- FACING_UP
-};
+#include "facing.h"
struct pacman_init {
float initial_xpos;
@@ -32,7 +26,6 @@ struct pacman {
struct animation animations[4];
};
-void load_pacman_spritesheet(struct demo* demo);
void init_pacman(struct pacman* pacman, struct pacman_init* init);
void handle_pacman_input(struct pacman* pacman, struct map* map);
void update_pacman(struct pacman* pacman, float dt, struct map* map);
diff --git a/Week1-Pacman/src/resources.c b/Week1-Pacman/src/resources.c
new file mode 100644
index 0000000..71f02aa
--- /dev/null
+++ b/Week1-Pacman/src/resources.c
@@ -0,0 +1,30 @@
+#include <SDL2/SDL_image.h>
+#include "resources.h"
+
+SDL_Texture* character_spritesheet;
+SDL_Texture* map_texture;
+
+SDL_Texture* load_texture(struct demo* demo, const char* image_name) {
+ SDL_Texture* texture =
+ IMG_LoadTexture(demo->ren, image_name);
+
+ if(texture == NULL) {
+ printf("Failed to load textue %s, error: %s, exitting!",
+ image_name, IMG_GetError());
+ exit(1);
+ }
+
+ return texture;
+}
+
+void load_resources(struct demo* demo) {
+ if(!character_spritesheet) {
+ character_spritesheet =
+ load_texture(demo, "assets/Sprites/sprites.png");
+ }
+
+ if(!map_texture) {
+ map_texture =
+ load_texture(demo, "assets/Sprites/Tileset.png");
+ }
+}
diff --git a/Week1-Pacman/src/resources.h b/Week1-Pacman/src/resources.h
new file mode 100644
index 0000000..b0f8aed
--- /dev/null
+++ b/Week1-Pacman/src/resources.h
@@ -0,0 +1,9 @@
+#ifndef RESOURCES_H_
+#define RESOURCES_H_
+
+#include <SDL2/SDL.h>
+#include "demo.h"
+
+void load_resources(struct demo* demo);
+
+#endif // RESOURCES_H_