summaryrefslogtreecommitdiff
path: root/glpong3d.c
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2010-02-09 19:13:26 -0500
committerMatt Turner <mattst88@gmail.com>2011-04-04 17:14:36 -0400
commit7f4e8d55232c076ec8e433e835928aeef55c354c (patch)
tree23337d4094328fa5e5c81701e9b27d1c1d9c6580 /glpong3d.c
parent9628bb86f9f31f6186b473ea3b386286c0e92623 (diff)
Calculate Paddle velocity in (x,y) at time of collision.HEADmaster
Signed-off-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'glpong3d.c')
-rw-r--r--glpong3d.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/glpong3d.c b/glpong3d.c
index 2fd98f6..c8cf85f 100644
--- a/glpong3d.c
+++ b/glpong3d.c
@@ -205,15 +205,27 @@ GLPong_Move(GLPong_t * GLPong) {
GLPong_BallMove(&GLPong->ball);
- if (GLPong_Collide(&GLPong->ball, &GLPong->front_paddle)
- || GLPong_Collide(&GLPong->ball, &GLPong->back_paddle)) {
+ if (GLPong_Collide(&GLPong->ball, &GLPong->front_paddle)) {
if (GLPong->ball.zv < 0) {
GLPong->ball.zv -= 0.005f;
} else {
GLPong->ball.zv += 0.005f;
}
#ifdef DEBUG
- printf("Collision: x: %.3f, y: %.2f, z: %.2f\n", GLPong->ball.x, GLPong->ball.y, GLPong->ball.z);
+ printf("Collision: x: %.3f, y: %.2f, z: %.2f\n\tPaddle: xv: %.3f, yv: %.3f\n",
+ GLPong->ball.x, GLPong->ball.y, GLPong->ball.z,
+ GLPong_PaddleXV(&GLPong->front_paddle), GLPong_PaddleYV(&GLPong->front_paddle));
+#endif
+ } else if (GLPong_Collide(&GLPong->ball, &GLPong->back_paddle)) {
+ if (GLPong->ball.zv < 0) {
+ GLPong->ball.zv -= 0.005f;
+ } else {
+ GLPong->ball.zv += 0.005f;
+ }
+#ifdef DEBUG
+ printf("Collision: x: %.3f, y: %.2f, z: %.2f\n\tPaddle: xv: %.3f, yv: %.3f\n",
+ GLPong->ball.x, GLPong->ball.y, GLPong->ball.z,
+ GLPong_PaddleXV(&GLPong->back_paddle), GLPong_PaddleYV(&GLPong->back_paddle));
#endif
}
}