diff --git a/app.c b/app.c index 94df354..18e78e2 100644 --- a/app.c +++ b/app.c @@ -138,6 +138,7 @@ typedef struct Collision { #define NB_COLLISIONS 10 Collision collisions[NB_COLLISIONS] = {}; +int nb_collisions = 0; Collision collision_union(Collision rec1, Collision rec2) { @@ -190,6 +191,21 @@ Collision collision_rec(Collision fix, int i, int scale) return col; } +void reset_collisions() +{ + nb_collisions = 0; +} +void add_collisions(int x, int y, int width, int height) +{ + if (nb_collisions >= NB_COLLISIONS) return; + collisions[nb_collisions++] = (Collision) { + .x = x, + .y = y, + .width = width, + .height = height, + }; +} + void set_velocity(float x, float y) { velocity = (v2){x, y}; @@ -235,32 +251,31 @@ int collision(v2 point, int x, int y, int w, int h) void init() { pengers_init(); - int col_id = 0; - collisions[col_id++] = (Collision) { + collisions[nb_collisions++] = (Collision) { .x = 100, .y = 400, .width = 50, .height = 100, }; - collisions[col_id++] = (Collision) { + collisions[nb_collisions++] = (Collision) { .x = 150, .y = 450, .width = 500, .height = 50, }; - collisions[col_id++] = (Collision) { + collisions[nb_collisions++] = (Collision) { .x = 650, .y = 400, .width = 50, .height = 100, }; - collisions[col_id++] = (Collision) { + collisions[nb_collisions++] = (Collision) { .x = 280, .y = 200, .width = 75, .height = 75, }; - collisions[col_id++] = (Collision) { + collisions[nb_collisions++] = (Collision) { .x = 445, .y = 200, .width = 75, @@ -340,7 +355,7 @@ void draw(float dt) rebondi(&penger_pos, scale); - for (int i = 0; i < NB_COLLISIONS; i++) { + for (int i = 0; i < nb_collisions; i++) { Collision col = collision_rec(collisions[i], i, scale); x_collide = x_collide || (col.height > 1); } @@ -403,7 +418,7 @@ void draw(float dt) } // draw collisions box - for (int i = 0; i < NB_COLLISIONS; i++) { + for (int i = 0; i < nb_collisions; i++) { for (int y = collisions[i].y; y < collisions[i].y + collisions[i].height; y++) { for (int x = collisions[i].x; x < collisions[i].x + collisions[i].width; x++) { if ((y/2 + x/3)%8 < 4) diff --git a/build.sh b/build.sh index 1b939ad..53df774 100755 --- a/build.sh +++ b/build.sh @@ -5,7 +5,7 @@ if [[ "$1" == "clear" ]]; then exit fi; -export_sym="init draw key_pressed key_released set_velocity set_mouse get_pos_x get_pos_y draw_player deco_player BUFFER width height id nb_players dir" +export_sym="init draw key_pressed key_released set_velocity set_mouse get_pos_x get_pos_y draw_player deco_player reset_collisions add_collisions BUFFER width height id nb_players dir" export_cmd="" for e in $export_sym; do export_cmd="$export_cmd -Wl,--export=$e"; @@ -31,7 +31,7 @@ id=0 for p in $(ls museum); do file=$(echo $p | sed "s/\.png$//g") ./png2c "museum/"$p $id > museum.c/$file.c - pengers_html+=$' \n' + pengers_html+=$' \n' pengers_include+='#include "museum.c/'$file$'.c"\n' ((id=id+1)) done diff --git a/load.js b/load.js index c93fbc4..8c8922b 100644 --- a/load.js +++ b/load.js @@ -50,7 +50,6 @@ const connection = new WebSocket(document.URL.replace('http', 'ws').replace('696 connection.onopen = (e) => { console.log("connection to server opened"); }; connection.onmessage = (e) => { var req = JSON.parse(e.data); - console.log(req); if (req.name == 'pseudo') { if (req.value != "") is_connected = true; document.getElementById('players').innerHTML = req.value;