Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 为电晕游戏设置加速计_Lua_Coronasdk_Accelerometer_Game Physics - Fatal编程技术网

Lua 为电晕游戏设置加速计

Lua 为电晕游戏设置加速计,lua,coronasdk,accelerometer,game-physics,Lua,Coronasdk,Accelerometer,Game Physics,我正在创建一个游戏,使用加速度计移动球(足球模型游戏) 但这段代码并没有给出一个流畅的游戏流程。你们能帮我找到正确的选项吗?你们要么需要“校准”要么改变算法。我会先尝试校准:将acc()替换为 然后做你觉得“不平滑”的倾斜,看看你这样做时打印的值。这将告诉您calibX和Y应该是什么,设置它们,然后取消注释物理行,注释掉打印行,再试一次,直到正确为止。例如,如果x和y瞬时值约为10,则可以尝试calibX=0.1或更小 如果找不到提供所需运动的校准系数值,则需要更改算法。例如,如果您试图模拟设备

我正在创建一个游戏,使用加速度计移动球(足球模型游戏)

但这段代码并没有给出一个流畅的游戏流程。你们能帮我找到正确的选项吗?你们要么需要“校准”要么改变算法。我会先尝试校准:将acc()替换为

然后做你觉得“不平滑”的倾斜,看看你这样做时打印的值。这将告诉您calibX和Y应该是什么,设置它们,然后取消注释物理行,注释掉打印行,再试一次,直到正确为止。例如,如果x和y瞬时值约为10,则可以尝试calibX=0.1或更小


如果找不到提供所需运动的校准系数值,则需要更改算法。例如,如果您试图模拟设备的倾斜,就好像它是一个弹珠滚动的桌子,并且倾斜桌子会使弹珠移动,那么改变重力不是实现这一点的方法。你需要施加一个水平力,这个力等于g*sin(θ),其中g是重力,θ是设备从一侧到另一侧的倾斜角度。如果允许沿另一个方向倾斜,公式会稍微复杂一些

你说的流畅是什么意思?您正在将重力设置为自上次调用以来设备加速度的变化。所以当设备静止或匀速运动时,你的物理重力为零。如果现在用户将设备向上加速1.2,则重力为-1.2。这就是你想要的吗?嗨,问题是当我倾斜设备时,球移动得非常快。上面的代码生成了一个速度运动,当我只是倾斜很小的角度。如果你有其他新的建议。。请说明您最终使用的方法。
function acc(e)
   physics.setGravity(e.xInstant*(screenW/4), -1*e.yInstant*(screenH/4))
end
function acc(e)
   local calibX = 1
   local calibY = 1
   -- physics.setGravity(calibX * e.xInstant*(screenW/4), -calibY * e.yInstant*(screenH/4))
   print(e.xInstant, e.yInstant, e.zInstant)
end