如何动态放置一个显示对象相对于另一个显示对象?

时间:2012-10-25 07:15:37

标签: lua corona

当参考对象的大小和位置不同时,我想将图像放在另一个DisplayObject(矢量对象)中。

local memoRect = display.newRect(135,100,440,540)
local memoTitle = display.newImage("images/memobg.png", 135, 100)

我想以相对的方式将memoTitle 放在<{1}}的范围内。但是以下代码不起作用。

memoRect

我希望上面的代码将local memoRect = display.newRect(135,100,440,540) local memoTitle = display.newImage("images/memobg.png", memoRect.x + 10, memoRect.y + 20) 放在memoTitle的左上角,而不是此代码将memoRect原点放在memoTitle的{​​{1}}中心和X top / 0。

这是预期的行为吗? 这是一个错误吗?

如何将memoRect相对于彼此放置?

1 个答案:

答案 0 :(得分:0)

我在尝试不同的事情后得出的正确的答案基本上是referencePoint默认设置为display.CenterReferencePoint而不是display.TopLeftReferencePoint < / p>

一旦我做了以下所有事情就像我预期的一样。

local memoRect = display.newRect(0,0,440,540)
local memoTitle = display.newImage("images/memobg.png", 0, 0)
memoRect:setReferencePoint(display.TopLeftReferencePoint)
memoTitle:setReferencePoint(display.TopLeftReferencePoint)
memoRect.x = 135; memoRect.y = 100
memoTitle.x = memoRect.x + 10; memoTitle.y = memoRect.y + 20

现在一切都相对于彼此(实际上是他们所在的DisplayGroup)。通过这种方式,我可以移动一个东西,而其他东西将相对于该对象定位。

我不知道制作默认display.CenterReferencePoint背后的荒谬逻辑,但根据我无法想象的任何理由,这是不符合逻辑的。