使用Corona SDK利用加速计移动对象。

我正在开发一个小型个人项目,以便熟悉 Corona SDK。我创建了一个静态地板和两堵静态墙,然后创建了一个球并添加了动态物理效果。我编写了一个函数,当加速计处于活动状态时,可以移动球,但我似乎不能做到这一点。我可以使对象静态,并且它可以正常移动,但它不会与动态墙或地板进行交互。我可以使对象静态,但当游戏加载时,球只会飞出屏幕,应用程序崩溃。

不确定如何处理这个问题,我已经看了看 Corona 中的示例项目。

这是我的代码。

点赞
用户4402825
用户4402825

有许多方法可以将加速计的重力应用于您的物理实体。不要直接通过调整其坐标来移动实体,而是尝试设置 hero 的速度以匹配倾斜:

local function heroMovex( event )
    hero:setLinearVelocity( 10 * event.xGravity, -10 * event.yGravity )
end

或者,如果您不介意将加速度应用于所有事物,只需将重力绑定到加速计即可:

local function tiltGravity( event )
    physics.setGravity( 10 * event.xGravity, -10 * event.yGravity )
end
Runtime:addEventListener("accelerometer", tiltGravity)
2015-03-13 05:08:05