Select Git revision
bouncing_ball.c
-
opgrsankkar authoredopgrsankkar authored
bouncing_ball.c 1.25 KiB
/**
* bouncing ball
*/
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
int kbhit()
{
struct timeval tv;
fd_set fds;
tv.tv_sec = 0;
tv.tv_usec = 0;
FD_ZERO(&fds);
FD_SET(STDIN_FILENO, &fds); //STDIN_FILENO is 0
select(STDIN_FILENO+1, &fds, NULL, NULL, &tv);
return FD_ISSET(STDIN_FILENO, &fds);
}
int main()
{
/* request autodetection */
int gdriver = DETECT, gmode, errorcode;
/* Local Variables */
int x, y;
int up = 0;
int left = 0;
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* get mid positions in x and y-axis */
x = getmaxx() / 2;
y = getmaxy() / 2;
while (!kbhit()) {
if (y >= getmaxy() - 30)
up = 1;
if (y <= 30)
up = 0;
if (x >= getmaxx() - 30)
left = 1;
if (x <= 30)
left = 0;
setcolor(RED);
circle(x, y, 30);
floodfill(x, y, RED);
/* prepare for next frame */
delay(15);
cleardevice();
if (up)
y = y - 5;
else
y = y + 5;
if (left)
x = x - 5;
else
x = x + 5;
}
/* clean up */
closegraph();
return 0;
}