static GLdouble ballVecY = 0.0;
+static inline double myfmax(double a, double b) {
+ return a > b ? a : b;
+}
+
static void initBall(void) {
ballX = 0.0;
ballY = 0.0;
// Check for collisions with paddles
if(ballVecX < 0 && ballX <= -HEIGHT + -ballVecX * 1.5) {
if(ballY >= paddle1 - PADDLESIZE && ballY <= paddle1 + PADDLESIZE) {
- GLdouble speedChange = fmax(1.0, fabs(paddle1 - ballY) * SPEEDBINC);
+ GLdouble speedChange = myfmax(1.0, fabs(paddle1 - ballY) * SPEEDBINC);
ballVecX *= -speedChange * SPEEDXINC;
ballVecY *= speedChange * SPEEDYINC;
}
}
if(ballVecX > 0 && ballX >= HEIGHT - ballVecX * 1.5) {
if(ballY >= paddle2 - PADDLESIZE && ballY <= paddle2 + PADDLESIZE) {
- GLdouble speedChange = fmax(1.0, fabs(paddle2 - ballY) * SPEEDBINC);
+ GLdouble speedChange = myfmax(1.0, fabs(paddle2 - ballY) * SPEEDBINC);
ballVecX *= -speedChange * SPEEDXINC;
ballVecY *= speedChange * SPEEDYINC;
}
glEnd();
// Draw the ball
- glPointSize(5.0);
- glBegin(GL_POINTS);
+ glBegin(GL_LINES);
glVertex2d(ballX, ballY);
+ glVertex2d(ballX - ballVecX, ballY - ballVecY);
glEnd();
// Write the score