gpt4 book ai didi

lua - 电晕停止对象被拖出屏幕

转载 作者:行者123 更新时间:2023-12-01 10:56:40 24 4
gpt4 key购买 nike

我有多个可以在屏幕上移动的可拖动对象。我想设置一个边界,这样它们就不会被拖出屏幕。我真的找不到我要找的东西来做这件事。

最佳答案

有几种方法可以做到这一点。

您可以将一些静态物理体设置为墙(就在屏幕边缘之外),并将动态物理体附加到您的可拖动对象上。如果您不希望多个可拖动对象相互碰撞,则需要设置自定义碰撞过滤器。

最简单的方法(假设您的对象还不是物理对象)是将所有可拖动项目放入表格中。然后在运行时监听器中,不断检查对象的 x 和 y 位置。例如

object1 = display.newimage.....

local myObjects = {object1, object2, object3}

local minimumX = 0
local maximumX = display.contentWidth
local minimumY = 0
local maximumY = display.contentHeight

local function Update()

for i = 1, #myObjects do

--check if the left edge of the image has passed the left side of the screen
if myObjects[i].x - (myObjects[i].width * 0.5) < minimumX then
myObjects[i].x = minimumX

--check if the right edge of the image has passed the right side of the screen
elseif myObjects[i].y + (myObjects[i].width * 0.5) > maximumX then
myObjects[i].x = maximumX

--check if the top edge of the image has passed the top of the screen
elseif myObjects[i].y - (myObjects[i].height * 0.5) < minimumY then
myObjects[i].y = minimumY

--check if the bottom edge of the image has passed the bottom of the screen
elseif myObjects[i].x + (myObjects[i].height * 0.5) > maximumY then
myObjects[i].y = maximumY
end

end
end

Runtime:addEventListener("enterFrame", Update)

该循环假定图像的引用点位于中心,如果不是,则需要进行调整。

关于lua - 电晕停止对象被拖出屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14811628/

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