gpt4 book ai didi

coronasdk - 如何获得 DisplayObject 的颜色(填充)以响应 Corona SDK 中的触摸等事件?

转载 作者:行者123 更新时间:2023-12-01 11:00:34 26 4
gpt4 key购买 nike

任何人都可以帮我找出如何获得电晕中矩形的颜色吗?我已经用颜色填充了那个矩形,所以现在我想在触摸矩形时获得该颜色。

最佳答案

创建你的矩形:

local rectangle = display.newRect(0, 0, 100, 100)

将您的颜色以 RGBA(您可以省略 A)格式放入表格中,并将其存储为矩形的“自定义属性”:

rectangle.fillColor = {110, 30, 25}

通过返回表值的 unpack 函数的魔力,将表传递给 setFillColor:

rectangle:setFillColor( unpack(rectangle.fillColor) )

现在你总能得到这样的颜色:

print( unpack(rectangle.fillColor) ) --> 110    30    25

print( rectangle.fillColor ) -- simply returns the table

或者将每种颜色放入一个变量中:

local red, green, blue, alpha = unpack(rectangle.fillColor)

您将看到它如何在其他事情上派上用场。

编辑

想到另一种很酷的方法,即劫持 setFillColor 函数:

local function decorateRectangle(rect)
rect.cachedSetFillColor = rect.setFillColor -- store setFillColor function

function rect:setFillColor(...) -- replace it with our own function
self:cachedSetFillColor(...)
self.storedColor = {...} -- store color
end

function rect:getFillColor()
return unpack(self.storedColor)
end
end

local rectangle = display.newRect(0, 0, 100, 100)

decorateRectangle(rectangle) -- "decorates" rectangle with more awesomeness

现在您可以使用 setFillColor 将颜色设置为正常颜色,并使用 getFillColor 返回它:)

rectangle:setFillColor(100, 30, 255, 255)

print(rectangle:getFillColor())

关于coronasdk - 如何获得 DisplayObject 的颜色(填充)以响应 Corona SDK 中的触摸等事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11239054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com