diff --git a/src/main.cpp b/src/main.cpp index e95e39a..97d402b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,7 @@ #include #include #include "world.h" +#include "maploader.h" const int SCREEN_HEIGHT = 320; const int SCREEN_WIDTH = 320; @@ -14,7 +15,7 @@ int main() { World& world = get_world(); - load_world(world,"assets/map"); + loadmap(world); world.setup(); diff --git a/src/maploader.cpp b/src/maploader.cpp index 582a901..15e7249 100644 --- a/src/maploader.cpp +++ b/src/maploader.cpp @@ -1,31 +1,22 @@ +#include "maploader.h" #include #include #include "components.h" #include "world.h" -void load_world(World& world,const char* path) { +void loadmap(World& world) { std::ifstream in; - in.open(path); + in.open("assets/map"); int x = 0; int y = 0; - int max_x = 0; - int max_y = 0; - while(in.eof() == false) { char c; in.get(c); - - if (max_x < x) - max_x = x; - if (max_y < y) - max_y = y; - switch (c) { - case '#': { Wall* wall = new Wall; @@ -44,7 +35,6 @@ void load_world(World& world,const char* path) { break; case '\n': - x = 0; y++; break; @@ -52,12 +42,6 @@ void load_world(World& world,const char* path) { x++; break; } - - - } - - world.height = CELL_SIZE * (max_y-1); - world.width = CELL_SIZE * (max_x-1); } diff --git a/src/maploader.h b/src/maploader.h new file mode 100644 index 0000000..61abcd0 --- /dev/null +++ b/src/maploader.h @@ -0,0 +1,8 @@ +#ifndef MAPLOADER_H +#define MAPLOADER_H + +#include "world.h" + +void loadmap(World& world); + +#endif diff --git a/src/pacman.cpp b/src/pacman.cpp index 2f3a41f..a8985da 100644 --- a/src/pacman.cpp +++ b/src/pacman.cpp @@ -1,4 +1,3 @@ -#include #include #include #include "components.h" @@ -20,7 +19,6 @@ Pacman::Pacman() { this->facing = 0; this->position = {0.,0.}; this->frame = 0; - this->time = 0; } Pacman::Pacman(Vector2 position) { this->texture = LoadTexture("assets/sprites/pacman.png"); @@ -42,24 +40,22 @@ void Pacman::tick() { Vector2 direction = {(float)(cos(angle)),(float)(sin(-angle))}; Vector2 new_position = Vector2Add(this->position,Vector2Scale(direction, (float)speed)); - World& world = get_world(); - - if (world.grid[indexify_position(new_position)] == nullptr){ + if (get_world().grid[indexify_position(new_position)] == nullptr){ this->position=new_position; } - + // Bound check - if (this->position.x < world.bound_offset*CELL_SIZE){ - this->position.x += world.width-2*world.bound_offset*CELL_SIZE; + if (this->position.x < 0){ + this->position.x += 320; } - if (this->position.y < world.bound_offset*CELL_SIZE){ - this->position.y += world.height-2*world.bound_offset*CELL_SIZE; + if (this->position.y < 0){ + this->position.y += 320; } - if (this->position.x >= world.width-(world.bound_offset-1)*CELL_SIZE){ - this->position.x -= world.width-2*world.bound_offset*CELL_SIZE; + if (this->position.x >= 320){ + this->position.x -= 320; } - if (this->position.y >= world.height-(world.bound_offset-1)*CELL_SIZE){ - this->position.y -= world.height-2*world.bound_offset*CELL_SIZE; + if (this->position.y >= 320){ + this->position.y -= 320; } } diff --git a/src/world.cpp b/src/world.cpp index 22e6eaf..7c15c9f 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -8,7 +8,6 @@ World::World(){ this->seconds_per_tick = 0; this->clock = 0; this->debug = false; - this->bound_offset = 1; } World::~World(){ diff --git a/src/world.h b/src/world.h index da7529f..0b80806 100644 --- a/src/world.h +++ b/src/world.h @@ -9,7 +9,6 @@ const int GRID_ROWS = 20; const int GRID_COLUMNS = 20; const int GRID_CAPACITY = GRID_COLUMNS*GRID_ROWS; -const int CELL_SIZE = 16; /// Class that holds information about game world class World { @@ -20,10 +19,7 @@ class World { std::vector entities; /// Main subjects of game world. Entity* grid[GRID_CAPACITY]; /// Grid representation float seconds_per_tick; /// Internal clock speed - int width; - int height; - int bound_offset; - + void setup(); /// Sets up game world. /// Should be called once when entites are set. @@ -40,6 +36,5 @@ class World { void create_world_with(float seconds_per_tick); World& get_world(); // Thanks, 2ndbeam, helps a lot int indexify_position(Vector2 vector); -void load_world(World& world, const char* path); #endif