如果在游戏中,演员要跳上平台就跳了起来。为了使他停在平台上,我需要设置什么速度/位置/重力?任何有关游戏物理学的知识都是非常棒的。我觉得是这样吗?

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()的方法,并在更新方法中取消重力和速度。

08-05 19:46