电晕sdk奇怪的Z订购问题?

时间:2013-07-08 01:23:47

标签: corona displayobject

我正在尝试在游戏中的精灵图像下面创建一个圆形阴影。但是,出于某种原因,即使我首先创建圆,精灵也总是出现在它下面。这是代码:

local circle = display.newCircle(100,100,30)
circle:setFillColor(0,0,0)
local hunter = display.newSprite(imageSheet,createAnimationSequence("Hunter",5))

createAnimationSequence函数只是组织动画序列,所以这不是问题所在。我已经尝试将精灵和圆圈都放在自己的显示组中,即使这样也行不通。我对此问题感到很困惑,但这可能只是一个我没有看到的粗心错误。

圆圈出现,精灵也是如此,只有圆圈位于精灵的顶部而不是精灵的下方,即使我编码首先绘制它。

2 个答案:

答案 0 :(得分:7)

您可以使用索引

直接将您的圈子放在群组后面
local group = display.newGroup()

local circle = display.newCircle(100,100,30)
circle:setFillColor(0,0,0)
local hunter = display.newSprite(imageSheet,createAnimationSequence("Hunter",5))

group:insert(1,circle)
group:insert(2,hunter)

答案 1 :(得分:6)

在Corona SDK中,你无法直接更改z-index,有一个解决方法。

您可以使用object:toBack()object:toFront()

local circle = display.newCircle(100,100,30)
circle:setFillColor(0,0,0)
local hunter = display.newSprite(imageSheet,createAnimationSequence("Hunter",5))

circle:toFront()
hunter:toFront()

但要注意object:toBack(),它可能导致对象移到后面(如果有的话),更喜欢在display.newGroup()

上使用它