【问题标题】:Change a public var at runtime in as3? (flixel)在 as3 运行时更改公共变量? (flixel)
【发布时间】:2013-01-02 10:04:27
【问题描述】:

我正在尝试创建一个猜谜游戏,让用户点击不同颜色的框来查看哪个是正确的。我有一个公共变量,它规定要使用哪种颜色(稍后的图像)。代码在我的更新中是这样的:

        if (FlxG.mouse.justPressed())
    {

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

    }

(colorUnit和colorArray均等分布p,类文件中随机数为2)

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

提前致谢!

【问题讨论】:

  • 您确定此代码每次都会受到攻击吗?您是否在其中放置了跟踪以验证此处的代码是否每次单击都在执行?如果您知道如何调试,则可能需要在其中放置一个断点。
  • 如果我没看错,您将所有这三个设置为完全相同的值,对吗?这样做有什么目的吗?还是您希望所有三个都被随机选择并设置为不同的随机值?
  • 另外,你希望它什么时候“连续切换出一个随机数”?每一帧?每次用户点击什么东西?

标签: actionscript-3 flash variables flixel


【解决方案1】:

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));

如果这对您没有帮助,我很抱歉,如果没有帮助,请告诉我,我会继续尝试并提供帮助。

【讨论】:

  • 没有。看,问题不在于数字的价值。问题是试图设置它。我不确定它是否设置正确。不过还是谢谢。
  • 哦,好的,问题,block2.colorArray 是一个数组,还是 block2.colorArray 基本上是什么?还有什么对象或原语是 block2.distributionp 和 block2.colorUnit?
  • block2.colorArray 是一个整数。不知道如何让它作为一个数组工作。
  • 当你调用 Math.random() * 2 时,你想要返回一个介于 0 和 2 之间的整数还是想要一个浮点数?
【解决方案2】:

我得到的值是 0 到 2 之间的整数。我想要做的是每次单击时更改值。我不确定会发生什么。也许我现在不应该问。当我有更多信息时,我会问。对不起。

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 2017-12-04
    • 2010-09-20
    • 2015-04-06
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    相关资源
    最近更新 更多