矩形をドラッグするサンプル

矩形をドラッグするサンプルを作りました。

local _rect -- 矩形

function listener(event)
   event.target.x = event.x
   event.target.y = event.y
   return true
end

function main()
   local x = display.contentWidth/2
   local y = display.contentHeight/2
   local w = 40
   local h = 40

   _rect = display.newRect(x-w/2, y-h/2, w, h)
   _rect:setFillColor(255, 255, 255)
   _rect:addEventListener("touch", listener)
end

main()

矩形をドラッグ中にいきよいよくマウスを動かし、マウスが矩形領域の外に出てしまうと、矩形がその場で止まります。矩形の領域外で発生するマウスイベントは矩形に伝達されないためです。

listener()に渡されるeventの中身(テーブル)を見たところ、以下のデータが格納されていました。

phase	moved
y	158
yStart	331
name	touch
x	162
target	table: 0x1cc8370
time	12551.02
id	userdata: 0xe5174
xStart	88

関連