【问题标题】:Corona SDK - Make a ball bounce based on touchCorona SDK - 基于触摸使球反弹
【发布时间】:2017-07-02 03:59:07
【问题描述】:

所以我试图让一个球落下,当它被触摸时,我需要它在球被触摸的方向反弹。现在我要做的就是直接向上,但如果我要点击球的边缘,它需要开始朝那个方向前进,但也要向上。

该游戏是一个足球跟上游戏,您轻按一下,球就会上升,如果它撞到地面,则分数会重置。简单的。但我似乎找不到任何关于如何让球左右滚动以及向上滚动的示例。

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)

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

感谢您的帮助。

【问题讨论】:

  • 你是把力施加到球的中心还是表面?
  • 上面的代码看起来是球的中心,我想?我对此很陌生,并正在努力学习。如果球的边缘有一个水龙头,它应该会上升,但也应该与水龙头的相反方向

标签: lua coronasdk game-physics


【解决方案1】:

试试

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")

【讨论】:

    猜你喜欢
    • 2013-04-01
    • 2012-02-26
    • 2014-01-07
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    相关资源
    最近更新 更多