【发布时间】:2016-02-05 16:04:52
【问题描述】:
我的乒乓球的 x 和 y 值从 0.0 到 1.0,它们是屏幕的边界。
它在屏幕上弹跳得很好,但无法识别我的桨。我的桨的值超出了可检测范围,我不知道如何使值介于 0.0 和 1.0 之间。
我需要使值介于 0.0 和 1.0 之间
float paddleHeightTop = (float)(rPaddle - (height/10));
float paddleHeightBottom = (float)(rPaddle + (height/10));
float paddleLeadingEdge = (float) (rPaddle/1000);
paddleLeadingEdge 的值为 897.0,需要为 0.897...拒绝转换,仍为 897。
我还没有计算出 paddleHeightTop 或 Bottom 的数学,但它们也需要有一个介于 0.0 和 1.0 之间的值... paddleHeightTop 的值为 183.0。 paddleHeightBottom 的值为 1.8970001。
rPaddle 从 'onMotionEvent' 更新它的值。
我的 onDraw for paddle 代码如下所示(并正确绘制和更新位置):
canvas.drawRect( 93 * (width / 100) , rPaddle - (height/10), 95 * (width / 100), rPaddle + (height/10), light);
我把它放在这里是因为我确定我缺少一些关系。 提前谢谢。
PS: 这是我的碰撞检测器(从 cmets 移来):
if (ballY < paddleHeightTop && ballX > paddleLeadingEdge && ballY > paddleHeightBottom ) {
soundPool.play(paddleSound, 1, 1, 0, 0, 1);
ballSpeedX *= -1;
}
【问题讨论】:
标签: java android converter collision-detection pong