diff options
| author | Atsutane <atsutane@freethoughts.de> | 2009-05-05 17:22:07 +0200 |
|---|---|---|
| committer | Atsutane <atsutane@freethoughts.de> | 2009-05-05 17:22:07 +0200 |
| commit | 26f368af2fa30a758be1216b086a040af135bd1b (patch) | |
| tree | 23d12295ed07c0031f1a3fe80d64cfe9552b7230 /src/pong.c | |
| parent | ea00d7c0f295b953e236612bb25932bf331f0e23 (diff) | |
| download | pong-26f368af2fa30a758be1216b086a040af135bd1b.tar.gz pong-26f368af2fa30a758be1216b086a040af135bd1b.tar.bz2 | |
Added ball_launch().
Diffstat (limited to 'src/pong.c')
| -rw-r--r-- | src/pong.c | 36 |
1 files changed, 36 insertions, 0 deletions
@@ -278,6 +278,42 @@ void ball_movement(struct game_data *gd) { } +/* Handles the launch when a player scored */ +void ball_launch(struct game_data *gd) { + int c; + struct player_data *p; + + if (gd == NULL) { + return; + } + + p = (gd->ball->x == 1) ? gd->p1 : gd->p2; + + p->y = gd->ball->y; + + /* Check if it's the turn of the player, + * if so, let him move his pad. + */ + if (p->x == 0) { + while ((c = getch()) != ' ') { + if ((c == KEY_UP) && + (p->y > gd->ball->y-2) && + (p->y < gd->ball->y+2)) { + p->y--; + } + else if ((c == KEY_DOWN) && + (p->y > gd->ball->y-2) && + (p->y < gd->ball->y+2)) { + p->y++; + } + } + } + else { + p->y += rand()%3 - 1; + } +} + + /* Controls the pad of p2 */ void p2_ai(struct game_data *gd) { if (gd == NULL) { |
