【问题标题】:Corona SDK setFillColor not coloring when mix colors混合颜色时 Corona SDK setFillColor 不着色
【发布时间】:2013-11-20 01:22:44
【问题描述】:

我只是 Corona SDK 的新用户,我正在学习一本书的一些练习。我尝试创建一个矩形并为其着色,但如果我将 setFillColor(255,0,0) 或将 255 放入绿色或蓝色,它就可以工作。问题是当我尝试混合 setFillColor(100,129,93) 之类的颜色时,它只会绘制一个白色矩形。

这是我的 main.lua:

rect_upperBackground = display.newRect(150, 150, 100, 50)
rect_upperBackground:setFillColor(49, 49, 49)

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    根据documentationsetFillColor 需要[0, 1] 范围内的颜色,而不是[0, 255]。因此,例如,您可以试试这个。

    rect_upperBackground:setFillColor(100 / 255, 129 / 255, 93 / 255)
    rect_upperBackground:setFillColor(0.4, 0.2, 0.5)
    

    【讨论】:

    • 谢谢老哥,成功了!!!我现在看到了文档,但我不明白为什么在 4 本书中他们使用 0 到 255 来着色......
    • example for display.newRect 也有这个错误,所以有人会被这个绊倒也就不足为奇了。
    【解决方案2】:

    object:setFillColor() 过去使用值 0-255,但在最新版本的 SDK 中,他们将其更改为 0-1,以便他们可以处理更大的颜色值。 (因为 0-1 是比 0-255 更大的范围,你知道的。)

    这意味着在 11 月中旬之前创建的所有书籍、视频教程等都是错误的。

    您还需要注意 object:setReferencePoint() 因为它已被弃用。您现在需要使用 object.anchorX 和 object.anchorY(默认为对象的中心,因此如果您需要,无需调整)。

    这是有人写的一篇文章,解释了您需要注意的三大变化: http://www.develephant.net/3-things-you-need-to-know-about-corona-sdk-graphics-2-0/

    这些更改从 Corona SDK 的 build 2013.2076 开始。

    【讨论】:

    • 感谢您的回复,您举了一个很好的例子,我尝试使用 setReferencePoint() 并没有工作... 很棒的文章!
    猜你喜欢
    • 2011-11-14
    • 2017-01-20
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多