@@ -3,7 +3,7 @@ | |||||
* Copyright (c) 2002 Sam Hocevar <sam@zoy.org> | * Copyright (c) 2002 Sam Hocevar <sam@zoy.org> | ||||
* All Rights Reserved | * All Rights Reserved | ||||
* | * | ||||
* $Id: common.h,v 1.11 2002/12/23 10:06:27 sam Exp $ | |||||
* $Id: common.h,v 1.12 2002/12/23 13:13:04 sam Exp $ | |||||
* | * | ||||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
@@ -102,7 +102,7 @@ typedef struct | |||||
typedef struct | typedef struct | ||||
{ | { | ||||
int x, y; | int x, y; | ||||
int dir; | |||||
int vx, vy; | |||||
int weapon, nuke; | int weapon, nuke; | ||||
} player; | } player; | ||||
@@ -3,7 +3,7 @@ | |||||
* Copyright (c) 2002 Sam Hocevar <sam@zoy.org> | * Copyright (c) 2002 Sam Hocevar <sam@zoy.org> | ||||
* All Rights Reserved | * All Rights Reserved | ||||
* | * | ||||
* $Id: main.c,v 1.12 2002/12/23 12:47:36 sam Exp $ | |||||
* $Id: main.c,v 1.13 2002/12/23 13:13:04 sam Exp $ | |||||
* | * | ||||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
@@ -98,7 +98,7 @@ static void start_game (game *g) | |||||
skip = 1; | skip = 1; | ||||
break; | break; | ||||
case 'h': | case 'h': | ||||
g->p->dir = -3; | |||||
g->p->vx = -2; | |||||
break; | break; | ||||
case 'j': | case 'j': | ||||
if( g->p->y < g->h - 2 ) g->p->y += 1; | if( g->p->y < g->h - 2 ) g->p->y += 1; | ||||
@@ -107,7 +107,7 @@ static void start_game (game *g) | |||||
if( g->p->y > 1 ) g->p->y -= 1; | if( g->p->y > 1 ) g->p->y -= 1; | ||||
break; | break; | ||||
case 'l': | case 'l': | ||||
g->p->dir = 3; | |||||
g->p->vx = 2; | |||||
break; | break; | ||||
case 'n': | case 'n': | ||||
if( g->p->nuke == 0 ) | if( g->p->nuke == 0 ) | ||||
@@ -3,7 +3,7 @@ | |||||
* Copyright (c) 2002 Sam Hocevar <sam@zoy.org> | * Copyright (c) 2002 Sam Hocevar <sam@zoy.org> | ||||
* All Rights Reserved | * All Rights Reserved | ||||
* | * | ||||
* $Id: player.c,v 1.4 2002/12/22 18:44:12 sam Exp $ | |||||
* $Id: player.c,v 1.5 2002/12/23 13:13:04 sam Exp $ | |||||
* | * | ||||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
@@ -31,7 +31,8 @@ player * create_player( game *g ) | |||||
p->x = g->w / 2; | p->x = g->w / 2; | ||||
p->y = g->h - 2; | p->y = g->h - 2; | ||||
p->dir = 0; | |||||
p->vx = 0; | |||||
p->vy = 0; | |||||
p->weapon = 0; | p->weapon = 0; | ||||
p->nuke = 0; | p->nuke = 0; | ||||
@@ -71,18 +72,24 @@ void update_player( game *g, player *p ) | |||||
p->nuke--; | p->nuke--; | ||||
} | } | ||||
if( p->dir < 0 ) | |||||
p->x += p->vx; | |||||
if( p->vx < 0 ) | |||||
{ | |||||
p->vx++; | |||||
} | |||||
else if( p->vx > 0 ) | |||||
{ | { | ||||
if( p->dir == -3 && p->x > -2 ) p->x -= 1; | |||||
else if( p->x > -1 ) p->x -= 1; | |||||
p->vx--; | |||||
} | |||||
p->dir++; | |||||
if( p->x < 1 ) | |||||
{ | |||||
p->x = 1; | |||||
} | } | ||||
else if( p->dir > 0 ) | |||||
else if( p->x > g->w - 7 ) | |||||
{ | { | ||||
if( p->dir == 3 && p->x < g->w - 8 ) p->x += 1; | |||||
else if( p->x < g->w - 7 ) p->x += 1; | |||||
p->dir--; | |||||
p->x = g->w - 7; | |||||
} | } | ||||
} | } | ||||