From d750bf2d8c5ca99a697b716cfda33a993b6486e3 Mon Sep 17 00:00:00 2001 From: Massena Date: Mon, 8 Mar 2021 16:51:00 +0100 Subject: [PATCH] first-try-semi-functionnal-collisions --- CMakeLists.txt | 1 + include/main.h | 1 + src/main.c | 26 ++++++++++++++++++++++---- 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 include/main.h diff --git a/CMakeLists.txt b/CMakeLists.txt index c0ae3c8..06bdcb1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,7 @@ project(zkuwl) include(GenerateG1A) include(GenerateG3A) include(Fxconv) +include_directories(include) find_package(Gint 2.1 REQUIRED) set(SOURCES diff --git a/include/main.h b/include/main.h new file mode 100644 index 0000000..36c32a0 --- /dev/null +++ b/include/main.h @@ -0,0 +1 @@ +int collide(int x, int y, int level[16][16]); \ No newline at end of file diff --git a/src/main.c b/src/main.c index dbd9174..284b153 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,16 @@ #include #include +#include "main.h" + +int collide(int x, int y, int level[16][16]) { + if(!level[x / 12][y / 12] + && !level[(x + 12) / 12][y / 12] + && !level[x / 12][(y + 12) / 12] + && !level[(x + 12) / 12][(y + 12) / 12]) { + return 0; + } + return 1; +} int main(void) { @@ -32,12 +43,19 @@ int main(void) } dupdate(); - + int mov_x = keydown(KEY_RIGHT) - keydown(KEY_LEFT); + int mov_y = keydown(KEY_DOWN) - keydown(KEY_UP); clearevents(); - // trying to move the player >w< - player_x += keydown(KEY_RIGHT) - keydown(KEY_LEFT); - player_y += keydown(KEY_DOWN) - keydown(KEY_UP); + // trying to move the player >w< + if(!collide(player_x + mov_x, player_y, level)) { + player_x += mov_x; + } + + if(!collide(player_x, player_y + mov_y, level)) { + player_y += mov_y; + } + if(keydown(KEY_EXIT)) {running = 0;} }