我不知道为什么,但这似乎不起作用。
($playerX, $playerY)
基本上,如果 player1与 player2 相距一个正方形,我希望这是真的($rs[x], $rs[y])
if (($rs[x] > $playerX-2 or $rs[x] < $playerX+2) && ($rs[y] > $playerY-2 or $rs[y] < $playerY+2)) {
// code
知道我做错了什么吗?
我不知道为什么,但这似乎不起作用。
($playerX, $playerY)
基本上,如果 player1与 player2 相距一个正方形,我希望这是真的($rs[x], $rs[y])
if (($rs[x] > $playerX-2 or $rs[x] < $playerX+2) && ($rs[y] > $playerY-2 or $rs[y] < $playerY+2)) {
// code
知道我做错了什么吗?
如果你用一些测试值替换,你可能会得到:
if( (3 > 5 or 3 < 9) && (13 > 15 or 13 < 19))
显然,这总是正确的。
在这种情况下,您应该使用&&
而不是。or
这只是替换为的or
情况and
。这是编写 if 语句以获得奖励积分的一种更简洁的方法:
if(abs($playerX - $rs[x]) < 2 && abs($playerY - $rs[y]) < 2) {
// code
由于 OR 运算符,您的条件最终为真
if (($rs[x] > $playerX-2 && $rs[x] < $playerX+2) && ($rs[y] > $playerY-2 && $rs[y] < $playerY+2)) {
//your code
}