Lua 我怎样才能把这个方程倒过来?
我正在制作一个简单的动画,其中一个球反复反弹。反弹的方程式为h=rt/16t^2,其中h是高度,t是以秒为单位的时间,r是初始速度。问题是球会从上到下反弹。我一直在摆弄这个方程式,但我就是弄不好。有人能看出这有什么问题吗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
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?