【发布时间】:2017-08-16 10:12:18
【问题描述】:
所以我在 android studio 中制作了一款突破性的游戏。
在进行游戏循环并与球拍和积木发生基本碰撞后,我注意到我的球在提高速度后开始穿过我的积木和球拍。
问题在于它在一帧中碰撞了两次,所以我的基本碰撞是不够的。
我读过有关使用矢量数学的解决方案。但这对我来说太过分了。
我指的是这个问题的答案:
Refer Here
if (RectF.intersects(bricks[i].getRect(), ball.getRect())) {
Brick brick = bricks[i];
if(ball.getRect().centerX()>brick.minX() && ball.getRect().centerX() < brick.maxX()){
ball.reverseYVelocity();
if(ball.getRect().top > brick.getRect().centerY()){
ball.clearObstacleY(brick.getRect().bottom - ball.getRect().height());
} else {
ball.clearObstacleY(brick.getRect().top + ball.getRect().height());
}
} else {
ball.reverseXVelocity();
if(ball.getRect().left > brick.getRect().centerX()){
ball.clearObstacleX(brick.getRect().right + ball.getRect().width());
} else {
ball.clearObstacleX(brick.getRect().left - ball.getRect().width());
}
}
我的球更新是:
public void update(long fps, float speed){
rect.left = rect.left + (xVelocity*speed / fps);
rect.top = rect.top + (yVelocity*speed / fps);
rect.right = rect.left + ballWidth;
rect.bottom = rect.top - ballHeight;
}
那么我如何将它转换成这样的东西:
Demo
提前致谢!
【问题讨论】:
标签: java android vector collision-detection