我目前正在制作游戏和玩家移动,我有if语句来检查你是否遇到了墙壁。
以下是我正在做的一个小例子:
if(!(player.intersects(wall1)){
// move
}
然而,我的问题是,现在我正在为不同级别添加更多墙,if语句变得有点不稳定。例如,添加第二个墙:
if(!(player.intersects(wall1)){
// move
}
if(!(player.intersects(wall2)){
// move
}
但是这只会使移动速度加倍,因为如果你没有击中任何墙壁,两者都会成为现实。
我尝试过的事情
我已尝试在其中添加其他内容,例如:
if(!(player.intersects(wall1)){
// move
} else
if(!(player.intersects(wall2)){
// move
}
但这会导致不检查两面墙。
如何有效地添加多个检查多个墙的if语句?
答案 0 :(得分:2)
您要做的是检查是否碰到任何墙壁,如果没有,请移动
if(!(player.intersects(wall1) && !(player.intersects(wall2) /* and so on */){
// move
}
答案 1 :(得分:1)
但是这只会使移动速度加倍,因为两者都会产生真实的效果 你没有撞墙。
鉴于两个if语句,结果应该是这样的。
这是一些简单的概率论。
当你与wall1相交时,它会变成红色
当你与wall2相交时,它会变成绿色
当你不动或任何其他情况时,它会变成黑色。
如何完成添加多个检查的if语句 有效的多面墙?
我想你想检查玩家是否成功不与墙碰撞,它会获得速度奖励。
您需要更改算法。 例如,
// a line of area is newly added as a checkpoint
if (player not collide with walls and passed through a line of area) {
rewarded
} else if (player collide with walls and passed through a line of area) {
not rewarded
} else {
not rewarded
// it may be probably not moving or not collide with anything and
// not passing through our checkpoint
}
希望有所帮助