我用 Java 编写了一个原型,它采用了可移动角色和基于图块的图形和游戏逻辑。每个关卡的布局都存储在一个 10x10 的二维数组中。当我使用以下代码检测玩家是否与“1”(空)图块碰撞时,它仅在玩家与数组中的最后一个“1”图块碰撞时返回正值,这是为什么呢?我知道这种方法非常低效。
for(int r = 0; r < levArray.length; r++) {
for(int c = 0; c < levArray[0].length; c++) {
if(levArray[r][c] == 1) {
if(px >= r*64-9 && px <= (r+1)*64+11 && py >= c*64-30 && py <= (c+1)*64+30) {
isColliding = true;
} else {
isColliding = false;
}
}
}
}