diff options
Diffstat (limited to 'paddle.c')
-rw-r--r-- | paddle.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -67,6 +67,8 @@ GLPong_PaddleInit(Paddle_t * paddle, GLfloat z, GLuint texture) { paddle->x = paddle->w / 2.0f; paddle->y = paddle->h / 2.0f; paddle->z = z; + paddle->prev_x = paddle->x; + paddle->prev_y = paddle->y; paddle->r = 1.0f; paddle->g = 1.0f; paddle->b = 1.0f; @@ -76,10 +78,10 @@ GLPong_PaddleInit(Paddle_t * paddle, GLfloat z, GLuint texture) { void GLPong_PaddleMove(Paddle_t * paddle, GLfloat x, GLfloat y) { - GLfloat old_x = paddle->x; - GLfloat old_y = paddle->y; GLfloat mouse_x; GLfloat mouse_y; + paddle->prev_x = paddle->x; + paddle->prev_y = paddle->y; /* clamp paddle to border */ if (x <= -1.5f + (paddle->w / 2.0f)) { @@ -99,12 +101,12 @@ GLPong_PaddleMove(Paddle_t * paddle, GLfloat x, GLfloat y) { #ifdef DEBUG printf("(mouse_x, mouse_y) = (%.3f, %.3f)\n", mouse_x, mouse_y); - printf("x diff is %f\n", fabs(mouse_x - old_x)); - printf("y diff is %f\n", fabs(mouse_y - old_y)); + printf("x diff is %f\n", fabs(mouse_x - paddle->prev_x)); + printf("y diff is %f\n", fabs(mouse_y - paddle->prev_y)); #endif - if (fabs(mouse_x - old_x) > 0.33f / 2.0f) { - if (mouse_x > old_x) { + if (fabs(mouse_x - paddle->prev_x) > 0.33f / 2.0f) { + if (mouse_x > paddle->prev_x) { paddle->x += 0.33f / 2.0f; } else { paddle->x -= 0.33f / 2.0f; @@ -113,8 +115,8 @@ GLPong_PaddleMove(Paddle_t * paddle, GLfloat x, GLfloat y) { paddle->x = mouse_x; } - if (fabs(mouse_y - old_y) > 0.25f / 2.0f) { - if (mouse_y > old_y) { + if (fabs(mouse_y - paddle->prev_y) > 0.25f / 2.0f) { + if (mouse_y > paddle->prev_y) { paddle->y += 0.25f / 2.0f; } else { paddle->y -= 0.25f / 2.0f; |