0

我不知道为什么,但这似乎不起作用。

($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

知道我做错了什么吗?

4

3 回答 3

0

如果你用一些测试值替换,你可能会得到:

if( (3 > 5 or 3 < 9) && (13 > 15 or 13 < 19))

显然,这总是正确的。

在这种情况下,您应该使用&&而不是。or

于 2012-04-07T01:16:36.400 回答
0

这只是替换为的or情况and。这是编写 if 语句以获得奖励积分的一种更简洁的方法:

if(abs($playerX - $rs[x]) < 2 && abs($playerY - $rs[y]) < 2) {
    // code
于 2012-04-07T01:17:15.887 回答
0

由于 OR 运算符,您的条件最终为真

if (($rs[x] > $playerX-2 && $rs[x] < $playerX+2) && ($rs[y] > $playerY-2 && $rs[y] < $playerY+2)) {
   //your code
}
于 2012-04-07T01:18:29.490 回答