2013-07-13 69 views
1

这里可能是一个非常简单的问题,但我觉得很奇怪。幸运的是,我发现了一种解决方法,但是我所做的工作以及我在标题中所拥有的功能都不起作用,这让我非常困惑!Actionscript 3.0 .... x> y> z不工作

我只是有一个简单的if语句...然后执行一个函数。此代码的工作原理:

if (200 > (x-target.x) && (x-target.x) > 0) 
       fireWeapon(); 

但这段代码没有!

if (200 > (x-target.x) > 0) 
       fireWeapon(); 

AS3不给我一个错误或者....这只是简单的做一个if语句的条件

if (200 > (x-target.x)) 

,似乎忽略了它必须是大于0的声明。我想在未来使用更简短,更具数学优势的方法,所以让我知道是否有办法解决签名问题!谢谢。

回答

2

if (200 > (x-target.x) > 0)代码正在工作。但你认为是不同的。计算机来解释一个句子。评估如下。

1)200>(x-target.x)如果200大于(x-target.x)则返回true,而不是false。 2)true(1)或false(0)> 0如果left语句为true返回true,(因为1大于0)不为false。

因此,如果200大于(x-target.x)总是返回true,而不是false。通常,计算机语言中使用的语法与数学语法不同。

而且您想要x> y> z必须更改为x>y && y>z && x>z

+0

谢谢,很好的解释=) – spaderdabomb