使用 Corona SDK 制作基于触摸的弹跳球

我正在尝试制作一个球下落,当触摸到它时,我需要它弹跳到球被触摸的方向。现在,它只能向上直行,但如果我在球的边缘点击,它需要开始向那个方向移动,并向上移动。

这个游戏是一个足球保持上升的游戏,您点击后球就往上跳,如果它触地,分数就重置。简单的游戏。但我似乎找不到任何关于如何让球向左右滚动以及向上移动的例子。

local ball = display.newImageRect("soccerball.png", 112, 112)
ball.x = display.contentCenterX
ball.y = display.contentCenterY
physics.addBody(ball, "dynamic", {radius=50, bounce=0.3})

local function pushBall(event)
    ball:applyLinearImpulse(0, -0.75, ball.x, ball.y)
    tapCount = tapCount + 1
    tapText.text = tapCount
end

ball:addEventListener("touch", pushBall)

上面的代码只允许球向上直行,没有滚动。

谢谢您的帮助。

点赞
用户7026995
用户7026995

尝试

function ball:touch( event )
    local phase = event.phase
    if ( phase == 'ended' ) then
        local x, y = ball.x - event.x, ball.y - event.y
        self:applyLinearImpulse( x / 30, -math.abs(y) / 30, self.x, self.y )
        --tapCount = tapCount + 1
        --tapText.text = tapCount
    end
    return true
end

ball:addEventListener("touch")
2017-07-02 14:13:54