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_Physics_Physics Engine - Fatal编程技术网

Lua 我怎样才能把这个方程倒过来?

Lua 我怎样才能把这个方程倒过来?,lua,physics,physics-engine,Lua,Physics,Physics Engine,我正在制作一个简单的动画,其中一个球反复反弹。反弹的方程式为h=rt/16t^2,其中h是高度,t是以秒为单位的时间,r是初始速度。问题是球会从上到下反弹。我一直在摆弄这个方程式,但我就是弄不好。有人能看出这有什么问题吗 function move_ball() count = count + 0.3 local h = (ints*count)-(16*(math.pow(count,2))) if (h < 0) then count = 0 move_ba

我正在制作一个简单的动画,其中一个球反复反弹。反弹的方程式为h=rt/16t^2,其中h是高度,t是以秒为单位的时间,r是初始速度。问题是球会从上到下反弹。我一直在摆弄这个方程式,但我就是弄不好。有人能看出这有什么问题吗

function move_ball()
  count = count + 0.3
  local h = (ints*count)-(16*(math.pow(count,2)))
  if (h < 0) then
    count = 0
    move_ball()
    collision()
  else
    ball.y = h / scale
  end
  if (ball.x - ball.rad < 0) then
    ball.dir = ball.speed
    collision()
  elseif (ball.x + ball.rad > length) then
    ball.dir = -ball.speed
    collision()
  end
  ball.x = ball.x + ball.dir
end
函数move_ball()
计数=计数+0.3
局部h=(整数*计数)-(16*(数学功率(计数,2)))
如果(h<0),则
计数=0
移动球()
碰撞()
其他的
球y=h/刻度
结束
如果(ball.x-ball.rad<0),则
ball.dir=ball.speed
碰撞()
elseif(ball.x+ball.rad>长度)然后
ball.dir=-ball.speed
碰撞()
结束
ball.x=ball.x+ball.dir
结束

也许您需要类似于:

ball.y = height - (h / scale)

通过测试确保ball.y不会变为负值。

你的方程是h=rt-16t^2,假设正h向上,重力向下(我原以为是4而不是16,但这与你的问题无关)。您的代码似乎是正确的。然而,屏幕坐标可能正y向下移动。在计算h之后,尝试对h:h=-h求反,并改为选中h>0。

您的显示方向正确吗?哪个方向分别增加x和y?