How do I bounce a star around the screen using gotoxy ?
I tried the follwing but it doesn't work after sometime:
PHP Code:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
struct gamecomponent
{
int bufx, bufy;
int oldx, oldy;
int newx, newy;
int speed;
//void resetcoords();
} ball, paddle;
void gamecomponent :: resetcoords()
{
oldx = bufx;
oldy = bufy;
bufx = newx;
bufy = newy;
}
void changecoordball()
{
int xadd, yadd, depvar=0;
if (ball.newx >= 80)
{
xadd = -ball.speed;
depvar = 1;
}
if (ball.newx <= 0)
{
xadd = ball.speed;
depvar = 1;
}
if (ball.newy >= 25)
{
yadd = -ball.speed;
depvar = 1;
}
if (ball.newy <= 0)
{
yadd = ball.speed;
depvar = 1;
}
if (ball.newy == paddle.newy)
{
if (ball.newx >= paddle.newx && ball.newx <= (paddle.newx + 3))
{
xadd = -ball.speed;
depvar = 1;
}
if (ball.newx > (paddle.newx + 3) && ball.newx <= (paddle.newx + 7))
{
xadd = ball.speed;
depvar = 1;
}
}
if (depvar != 1)
{
xadd = 1;
yadd = 1;
}
ball.newx = ball.newx + xadd;
ball.newy = ball.newy + yadd;
}
void changecoordpaddle(int direction)
{
int delx;
if (direction == 1)
{
delx = paddle.speed;
}
else
{
delx = -paddle.speed;
}
paddle.newx = paddle.newx + delx;
}
void initialize()
{
ball.bufx = 1;
ball.bufy = 1;
ball.newx = 1;
ball.newy = 1;
ball.oldx = 1;
ball.oldy = 1;
ball.speed = 2;
paddle.bufx = 1;
paddle.bufy = 25;
paddle.newx = 1;
paddle.newy = 25;
paddle.oldx = 1;
paddle.oldy = 25;
paddle.speed = 1;
}
void placeball()
{
gotoxy(ball.oldx, ball.oldy);
printf(" ");
gotoxy(ball.newx, ball.newy);
printf("*");
}
void placepaddle()
{
gotoxy(paddle.oldx, paddle.oldy);
printf(" ");
gotoxy(paddle.newx, paddle.newy);
printf("=======");
}
int checkbounce()
{
int bounceval = 1;
if (ball.newy == paddle.newy)
{
if (ball.newx < paddle.newx || ball.newx > (paddle.newx + 7))
{
bounceval = 0;
}
}
return bounceval;
}
main()
{
clrscr();
initialize();
while (1 == 1)
{
changecoordball();
resetcoordsball();
placeball();
delay(100);
while (kbhit())
{
return 0;
}
}
}
Any help is appreciated.
COOL PROGRAMS @ www.akilla.tk