如果在游戏中,演员要跳上平台就跳了起来。为了使他停在平台上,我需要设置什么速度/位置/重力?任何有关游戏物理学的知识都是非常棒的。我觉得是这样吗?
Vector2 position ? ;
Vector2 gravity ? ;
final int Jump velocity = 11;
Vector2 Gravity(0, -12);
public void hitPlatform () {
velocity.y = ?
state = IDLE;
stateTime = 0;
}
这是我尝试在
velocity.y = 0;
中使用hitPlatform()
的方式,速度在更新方法中增加了重力,位置增加了速度,但是他只是掉进了平台。 最佳答案
就像apnorton在评论中所说,“将加速度和速度都设为0”
当用户在平台上时,请确保速度不发生变化,或者您可以仅使平台成为固体,并且触摸顶部的任何物体都会取消其移动并将其速度设置为0。
基本上,只是不要让用户浏览平台。
在“更新时,速度增加了重力,位置增加了速度,但他只是掉下平台”,您可以制作一个名为isOnGround()
或isOnPlatform()
的方法,并在更新方法中取消重力和速度。