0

我正在尝试在我的 ipad 上的 codea 中创建一个简单的应用程序,它显示图像并让用户移动它。我能够正确显示图像,但无法用手指移动它。

这是我的代码。

function touched(touch)

 local currentTouchPosition = vec2(touch.x,touch.y)

if (touch.state == BEGAN) then

end

if (touch.state == MOVING) then


if   ((imagePosition.x - imageSize.x/2) < currentTouchPosition.x and
         (imagePosition.x + imageSize.x/2) > currentTouchPosition.x and
         (imagePosition.y - imageSize.y/2) < currentTouchPosition.y and
         (imagePosition.y + imageSize.y/2) > currentTouchPosition.y  ) then


        imagePosition = currentTouchPosition
    end
  end       

 if (touch.state == ENDED) then

end

end

我应该如何使它工作?...在​​此先感谢。

4

1 回答 1

0

我想现在你已经找到了答案,但如果你还没有,我希望这会有所帮助。

不确定您在 setup() 或 draw() 中做了什么,但我所做的是将 imageSize 和 imagePosition 定义为 vec2s 并给它们一个初始值。我还添加了一个简单的图像。

除了 touch() 中的一些格式之外,该代码看起来还不错。

我希望下面的代码有意义。

函数设置()

-- Screen center
X = WIDTH/2
Y = HEIGHT/2

imageDims = 100  -- Define the image size

imagePosition = vec2(X,Y)  -- Define imagePosition and imageSize in setup() as vec2
imageSize     = vec2(imageDims,imageDims)    

结尾

函数绘制()

background(40, 40, 50)

sprite("Cargo Bot:Codea Icon",
    imagePosition.x,imagePosition.y,
    imageSize.x,imageSize.y)

结尾

触摸功能(触摸)

local currentTouchPosition = vec2(touch.x,touch.y)

if (touch.state == BEGAN) then  end

if (touch.state == MOVING) then
    if  ((imagePosition.x - imageSize.x/2) < currentTouchPosition.x and
        (imagePosition.x  + imageSize.x/2) > currentTouchPosition.x and
        (imagePosition.y  - imageSize.y/2) < currentTouchPosition.y and
        (imagePosition.y  + imageSize.y/2) > currentTouchPosition.y)    then

        imagePosition = currentTouchPosition
    end
end       

if (touch.state == ENDED) then  end

结尾

于 2018-12-01T21:23:08.293 回答