Corona对象反对镜像另一个属性。

使用 Corona,我有一张图片因为碰撞(使用 physics 模块)而转移到一个新的 x / y 位置。

我想要一个第二张图片,也就是阴影图片,跟随第一张图片移动。我需要按比例缩放阴影图片并移动它的 y 坐标。

当第一张图片移动时,如何让第二个对象镜像它的移动?

... 实际上以下的代码似乎可以正常工作,但我认为它不是最有效的。如果有其他想法,我会很感兴趣?

local function onGlobalPostCollision( event )
    shadowImageOne.x = tabImageOne.x
    shadowImageTwo.x = tabImageTwo.x
    shadowImageThree.x = tabImageThree.x
end

Runtime:addEventListener( "postCollision", onGlobalPostCollision )
点赞
用户752976
用户752976

有三种方式:

使用引用

如果您将位置存储为表格,如:

position = [x, y]

那么仅通过引用来设置它即可。

手动复制每一帧

很直接。 在每次更新例程的迭代中将图形精灵位置设置为物理位置。

无状态渲染

使您的渲染无状态。每次基于完整的程序状态进行绘制。如果没有保留状态,则不需要更新。


总的来说,我个人会避免在显示对象中保留状态。这会使逻辑分开测试更加困难,而且会创建类似的问题。无状态渲染可以保证同步,但如果图形需要密集缓存,则可能会产生一些性能惩罚(如果成本很高,则不希望每次都重新创建所有精灵)。

2015-12-18 23:19:46