diff options
-rwxr-xr-x | Week1-Pacman/build/pacman | bin | 0 -> 64960 bytes | |||
-rw-r--r-- | Week1-Pacman/level | 33 | ||||
-rw-r--r-- | Week1-Pacman/src/enemy.h | 25 | ||||
-rw-r--r-- | Week1-Pacman/src/facing.h | 11 | ||||
-rw-r--r-- | Week1-Pacman/src/import_resources.h | 9 | ||||
-rw-r--r-- | Week1-Pacman/src/main.c | 5 | ||||
-rw-r--r-- | Week1-Pacman/src/map.c | 14 | ||||
-rw-r--r-- | Week1-Pacman/src/map.h | 1 | ||||
-rw-r--r-- | Week1-Pacman/src/pacman.c | 14 | ||||
-rw-r--r-- | Week1-Pacman/src/pacman.h | 9 | ||||
-rw-r--r-- | Week1-Pacman/src/resources.c | 30 | ||||
-rw-r--r-- | Week1-Pacman/src/resources.h | 9 |
12 files changed, 123 insertions, 37 deletions
diff --git a/Week1-Pacman/build/pacman b/Week1-Pacman/build/pacman Binary files differnew file mode 100755 index 0000000..e332982 --- /dev/null +++ b/Week1-Pacman/build/pacman 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_ |