使物体彼此跟随。

使用此代码,我可以在 Y 轴上移动“磁铁”,但是如何将“场”与“磁铁”链接起来,以便当我移动“磁铁”时,“场”也会移动?

magX = 300
magY = 100

field = display.newImageRect( "field.png", 330, 330 ) ; field.alpha = 0.2
field.name = "field"
field.x = magX; field.y = magY
physics.addBody( field, "static", { isSensor=true, radius=180, filter=fieldFilter } )

magnet = display.newImageRect( "magnet.png", 128, 128 )
magnet.name = "magnet"
magnet.x = magX ; magnet.y = magY
physics.addBody( magnet, "static", { bounce=0, radius=40, filter=magnetFilter } )

function magnet:touch( event )
    Runtime:removeEventListener( "touch", screenTouch )
    if event.phase == "began" then
        self.markX = self.x    -- 存储对象的 x 位置
        self.markY = self.y    -- 存储对象的 y 位置
    elseif event.phase == "moved" then
        local x = moverX --(event.x - event.xStart) + self.markX
        local y = (event.y - event.yStart) + self.markY
        self.x, self.y = x, y
        if self.y > 500 then self.y = 500 end
        if self.y < 100 then self.y = 100 end
        magX = self.x
        magY = self.y
    else
        Runtime:addEventListener( "touch", screenTouch )
    end
    return true
end
magnet:addEventListener( "touch", magnet )
点赞
用户1993254
用户1993254
function magnet:touch( event )
    Runtime:removeEventListener( "touch", screenTouch )
    if event.phase == "began" then

        self.markX = self.x    -- 存储对象的 x 坐标位置
        self.markY = self.y    -- 存储对象的 y 坐标位置

    elseif event.phase == "moved" then

        local x = moverX --(event.x - event.xStart) + self.markX
        local y = (event.y - event.yStart) + self.markY

        self.x, self.y = x, y    -- 根据上述计算移动对象
        --print("touch")

        if self.y > 500 then self.y = 500 end
        if self.y < 100 then self.y = 100 end

        magX = self.x
        magY = self.y

        transition.to( field, { time=1, x=self.x, y=self.y } )  -- 通过添加 `transition.to( field, { time=1, x=self.x, y=self.y } )` 修复问题

    else
    Runtime:addEventListener( "touch", screenTouch )
    end
    return true
end
2014-11-30 17:26:49