让我说,我试图移动一个三维模型,并保持它的简单,我只是要移动它的x轴。我从0.0位置开始,把它移到10.0位置。
问题是,根据我移动的速度,我最终会出现位置错误,这意味着我需要恢复到10.0位置。
例如,如果速度为3.0,那么每帧我都将3.0添加到x位置0.03.0 6.0 9.0 12.0
如果我想在达到10.0时停止,我可以使用下面的代码
if(model.x <= 10.0f)
model.x += speed * FrameTime;
else
model.x = 10.0f;然而,在意识到它已经超过10.0之前,该模型将达到12.0的位置。
这也意味着我移动得越快,错误就会越大。
谁能建议一个更好的方式来移动模型,以消除或至少减少错误,使它看起来不像我的模型反弹回来。
发布于 2014-06-05 21:00:49
float minX = 0;
float maxX = 10;
float dx = speed * FrameTime;
model.x = Math.max(minX, Math.min(model.x + dx, maxX));也许不是最清晰的解决方案,但它可以在一行中满足您的需要。
https://stackoverflow.com/questions/24069880
复制相似问题