【发布时间】:2014-07-29 06:42:35
【问题描述】:
我正在尝试实现“挂钩”对象的游戏机制......这是我正在谈论的图片:
但我对钩子的链条/绳子有问题。
我尝试在钩子运行时逐步创建它,使用计时器和enterFrame 事件,但它们都会在链段之间产生巨大的间隙。
我尝试过创建整个链条的大图像并动态改变宽度,但它只会拉伸并且看起来很有趣:D
也许有人遇到过同样的问题?
【问题讨论】:
标签: coronasdk
我正在尝试实现“挂钩”对象的游戏机制......这是我正在谈论的图片:
但我对钩子的链条/绳子有问题。
我尝试在钩子运行时逐步创建它,使用计时器和enterFrame 事件,但它们都会在链段之间产生巨大的间隙。
我尝试过创建整个链条的大图像并动态改变宽度,但它只会拉伸并且看起来很有趣:D
也许有人遇到过同样的问题?
【问题讨论】:
标签: coronasdk
我建议你尝试关注。
容器会自动生成遮罩,因此您无需拉伸,而是将链的一部分隐藏在遮罩下。
这里是容器文档http://docs.coronalabs.com/daily/guide/graphics/container.html的链接
【讨论】:
这不是一个完整的答案 - 对于一个广泛的问题,我已经给了你一些广泛的答案,但我希望它可以帮助你创造你需要的东西。
我最近创建了一个非常相似的机制 -
我用enterFrame调用了一个函数,我们叫它BuildHook,这会检查钩子的位置和起点的位置,然后计算需要多少张图片来填写空间。我作为“钩子”的图形部分大于链片,允许它重叠,并且只有在最后一块和钩子之间创建了足够的空间后才放置一个新图像。
这意味着它是向前和向后移动的钩子,然后在它和起点之间有一个静态的“链”。要么消耗“链接”,因为它会向后移动,要么创建“链接”,因为它远离它们。
请记住,这是伪代码,但应该让您知道如何制作它。
local arrayOfPieces = {}
local function BuildHook()
-- Bunch of variables you need to get
startX,startY,
hookX,hookY,
lastPieceX,lastPieceY,
singlePieceWidth
-- The hook pseudo code
if(hookX - lastPieceX >= singlePieceWidth) then
local newPiece = display.newImage('singlePiece.png');
newPiece.x = lastPieceX + singlePieceWidth/2
newPiece.y = lastPieceY
table.insert(arrayOfPieces,newPiece)
end
if(hookX < lastPieceX) then
lastPieceArrayPos = table.getn(arrayOfPieces)
table.remove(arrayOfPieces,lastPieceArrayPos)
lastPiece = arrayOfPieces[lastPieceArrayPos - 1]
end
end
【讨论】: