Java 如何修复在碰撞中卡住的对象
在我正在制作的一个java游戏中,我有一个玩家和一块墙砖。当玩家向前移动时,它会检查是否与此代码中的墙发生碰撞:Java 如何修复在碰撞中卡住的对象,java,collision-detection,Java,Collision Detection,在我正在制作的一个java游戏中,我有一个玩家和一块墙砖。当玩家向前移动时,它会检查是否与此代码中的墙发生碰撞: player.moveForward2(playerSpeed); //moves player forward for (int i = 1; i <=100; i++) { for (int j = 1; j <=50; j++) { map1.map[(int) (i-1)][(int) (j-1)].getRect
player.moveForward2(playerSpeed); //moves player forward
for (int i = 1; i <=100; i++) {
for (int j = 1; j <=50; j++) {
map1.map[(int) (i-1)][(int) (j-1)].getRect(); //gets rectangle from object on screen
player.getRect();
if (player.r.intersects(map1.map[(int) (i-1)][(int) (j-1)].r)) { //checks if player is intersecting rectangle after moving
if (map1.map[(int) (i-1)][(int) (j-1)].id == 3) { //checks that player isn't able to pass through this tile
player.moveBackward2(playerSpeed); // moves back if space cannot be moved into
}
}
}
}
player.moveForward2(playerSpeed)//向前移动球员
对于(int i=1;i)这里有很多未知数。请分享方法的详细信息,他们正在做什么,以及nit:why you's typecasting(int)(i-1)
?i
和j
都已经定义为int
@roottraveler它首先运行moveForward2()
player中的方法,该方法更改播放器中存储的坐标,从而影响绘制瓷砖的位置。它对每个瓷砖重复代码的其余部分,首先获取播放器周围的矩形和for循环指定的瓷砖,然后测试矩形是否相交。如果相交,则将播放器移动到opp至于类型转换,这是一个错误,我从以前的方法中复制了循环,但仍然不太清楚。player.getRect()
它做什么?它返回一些值吗?你能用一个适当的问题陈述来更新吗?这里有很多未知数。请分享他们正在做的方法的详细信息和nit:你为什么打字(int)(i-1)
?i
和j
都已定义为int
@roottraveler,它首先运行moveForward2()
player中的方法,该方法更改播放器中存储的坐标,从而影响绘制瓷砖的位置。它对每个瓷砖重复代码的其余部分,首先获取播放器周围的矩形和for循环指定的瓷砖,然后测试矩形是否相交。如果相交,则将播放器移动到oppPosite way。至于类型转换,这是一个错误,我从以前的方法复制了循环,它们是必需的。仍然不是很清楚。player.getRect();
它做什么?它返回一些值吗?你能用正确的问题陈述更新吗?