【发布时间】:2011-06-15 07:31:04
【问题描述】:
我偷偷怀疑我做错了。它现在起作用了,重力将物体拉向地面,但我在操纵物体的速度时遇到了麻烦。
这是什么,是一个球向地面跳跃和落下。
我有另一个名为“jump”的函数,它只是将jSpeed 添加到它的 yVel
我可以增加gravity,它下降得更快。
我可以提高jSpeed 的速度,它会上升的时间更长,但不会更快
但我无法让它更快地完成所有事情。它看起来慢得令人痛苦,这可能是因为我的模拟器平均以 11 fps 运行。
它只是我的模拟器,还是我的目的?
float time = elapsedTime/1000F;
if (speed < maxSpeed){
speed = speed + accel;
}
if(mY + mVelY < Panel.mHeight){ //0,0 is top-left
mVelY += (speed);
}
if (!(mY + height >= Panel.mHeight)){
mVelY = mVelY + gravity ;
}
mX = (float) (mX +(mVelX * time));
mY = (float) (mY + (mVelY * time));
【问题讨论】:
-
你多久调用一次这段代码?您是否跟踪自上次通话以来经过的时间?另外,与您的问题无关,但是:
speed = speed + accel;->speed可以大于maxSpeed。 -
@Gabriel 此代码每帧调用一次,并且正在跟踪经过的时间。它正在使用
System.currentTimeMilis();我更新了我的问题中的代码以显示这一点