//
// Project Name: Bouncing Ball
//
// Author: Matthew Weathers
// Modified by:
//
// Date : 14-Oct-2004
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <string.h>
#include "graphics2.h"
using namespace std;
#define ESC 0x1b
void main()
{
srand((unsigned int)time(NULL)); // Seed the random number generator
int GraphDriver=0,GraphMode=0;
initgraph( &GraphDriver, &GraphMode, "", 800, 600 ); // Start Window
char tempstring[80]="unused";
//Variable Declarations
bool KeepGoing=true;
char KeyPressed;
float ballX, ballY;
float prevX, prevY;
float XVel, YVel;
// Initial Position
ballX = 100.0;
ballY = 40.0;
// Initial Velocity
XVel = 4.0;
YVel = 5.0;
//Main Loop
while ( KeepGoing ) {
delay( 50 );
// Remember previous position
prevX = ballX;
prevY = ballY;
// Move the ball (Add Velocity to Position)
ballX += XVel;
ballY += YVel;
// Erase old Ball
setcolor(BLACK);
circle( prevX, prevY, 20);
// Draw New ball
setcolor(RED);
circle( ballX, ballY, 20);
// Bounch off left/right walls
if ( ballX > 770 || ballX < 30) {
XVel *= -1.0;
}
// Bounch off top/bottom walls
if ( ballY > 570 || ballY < 30) {
YVel *= -1.0;
}
// Check to see if a key has been pressed
if (kbhit()) {
KeyPressed = getch();
if (KeyPressed == 'q') { // q - quit
KeepGoing = false;
}
}//end if kbhit()
} // end while kbhit
//getch(); //Wait for a key. (When main function ends, the window will close)
} //end of main()