2013-01-01 43 views
0

我试图创建一个猜谜游戏,让用户点击不同的彩色框来查看哪一个是正确的。我有一个公共变量,决定使用哪种颜色(后面的图像)。该代码是这样的,我更新:在as3中在运行时更改公共变量? (flixel)

 if (FlxG.mouse.justPressed()) 
    { 

     block2.distributionp = Math.random() * 2; 
     block2.colorArray = block2.distributionp; 
     block2.colorUnit = block2.colorArray; 

    } 

(colorUnit和colorArray都等于distributionp,这是2类文件ranom)

当我运行这段代码,确实发生了变化,但它似乎只能切换一次。其他时候它被忽略了。我怎样才能得到这个连续的随机数字,我可以在以后使用?

在此先感谢!

+2

你是否正面这段代码每次都会被击中?你有没有在那里放置一个跟踪来验证这里的代码是否正在执行每次点击?如果你知道如何调试,你可能需要在那里放置一个断点。 – prototypical

+0

如果我正确阅读这篇文章,您将所有这三个设置为完全相同的值,对吗?这是否有目的?还是你想让它们全部被随机选择并设置为不同的随机值? – IQAndreas

+0

另外,你什么时候想要“连续切换出一个随机数”?每一帧?每次用户点击一些东西? – IQAndreas

回答

0

Math.random() * 2返回一个范围从0.000000000000到2.00000000的数字,其中包括0.123456789和1.99999999之类的数字(不确定究竟是什么小数位,但只是说它不仅返回整数0,1和2)。我不确定,但我认为你的问题在于范围,所以如果你想要更好的范围使用这段代码。

MIN_VALUE * Math.random() + (MAX_VALUE - MIN_VALUE);

如果你想只得到整数您可以使用Math.ceil()Math.floor()像这样:
Math.ceil(MIN_VALUE * Math.random() + (MAX_VALUE - MIN_VALUE));

我很抱歉,如果这并不能帮助你,但让我知道如果它不,我会继续尝试和帮助。

+0

否。请参阅,问题不在数字的值。问题是试图设置它。我不确定它是否设置正确。不过谢谢。 – xhunterko

+0

哦,好的,问题是block2.colorArray一个数组,或基本上是什么block2.colorArray?另外什么对象或基元是block2.distributionp和block2.colorUnit? –

+0

block2.colorArray是一个int。不知道如何让它作为一个数组工作。 – xhunterko

0

我得到的值是0到2之间的整数。我试图做的是改变每次点击时的值。我不知道发生了什么。也许我现在不应该问。当我有更多信息时,我会再问。抱歉。