From 522f5dae6842a241149e4e466ff830a29d1cf73d Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 20 May 2013 16:51:12 -0400 Subject: Limit paddle movement to game board. --- diff --git a/src/game.c b/src/game.c index e75a04b..7628c67 100644 --- a/src/game.c +++ b/src/game.c @@ -56,6 +56,8 @@ static void input(struct game *g) { int c; + struct paddle *pad; + int dir; timeout(0); for (;;) { @@ -65,17 +67,29 @@ input(struct game *g) } else if (c == ERR) { break; } else if (c == KEY_LEFT) { - g->players[0]->paddle_h.pos -= - g->players[0]->paddle_h.speed; + pad = &g->players[0]->paddle_h; + dir = -1; + if (pad->pos > pad->size / 2 + 2) { + pad->pos += pad->speed * dir; + } } else if (c == KEY_RIGHT) { - g->players[0]->paddle_h.pos += - g->players[0]->paddle_h.speed; + pad = &g->players[0]->paddle_h; + dir = 1; + if (pad->pos < 78 - pad->size / 2) { + pad->pos += pad->speed * dir; + } } else if (c == KEY_UP) { - g->players[0]->paddle_v.pos -= - g->players[0]->paddle_v.speed; + pad = &g->players[0]->paddle_v; + dir = -1; + if (pad->pos > pad->size / 2 + 2) { + pad->pos += pad->speed * dir; + } } else if (c == KEY_DOWN) { - g->players[0]->paddle_v.pos += - g->players[0]->paddle_v.speed; + pad = &g->players[0]->paddle_v; + dir = 1; + if (pad->pos < 23 - pad->size / 2) { + pad->pos += pad->speed * dir; + } } } } -- cgit v0.9.1