所以我在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
提前致谢!