ohsp

Prototype for a game with dual thruster controls.
Log | Files | Refs | LICENSE

commit bde61bd1485d04205ee0509df7fd0f5b871004e5
parent bf032658c2b29421e689a9e5d106f6e01d76346b
Author: Amin Mesbah <mesbahamin@gmail.com>
Date:   Fri, 10 Nov 2017 00:04:46 -0800

Wrap player position

Diffstat:
Msrc/game.c | 21++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/game.c b/src/game.c @@ -35,6 +35,23 @@ void game_init(struct GameState *game_state, int field_width, int field_height) } +float wrap(float n, float min, float max) +{ + if (n > max) + { + return min; + } + else if (n < min) + { + return max; + } + else + { + return n; + } +} + + void game_update(struct GameState *game_state, struct GameControllerInput game_input, int field_width, int field_height) { if (!game_state) @@ -66,10 +83,12 @@ void game_update(struct GameState *game_state, struct GameControllerInput game_i game_state->thrust_vector02.length); struct Entity *player = &game_state->player; - entity_accelerate(player, game_state->thrust_vector_sum.angle, game_state->thrust_vector_sum.length * 0.001); + entity_accelerate(player, game_state->thrust_vector_sum.angle, game_state->thrust_vector_sum.length * 0.01); player->x += player->speed * cos(player->angle); player->y += player->speed * sin(player->angle); + player->x = wrap(player->x, 0, field_width); + player->y = wrap(player->y, 0, field_height); }