Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何阻止尸体';在libGDX(Box2D)中,是指脉冲和力,而不是重力?_Java_Libgdx_Box2d - Fatal编程技术网

Java 如何阻止尸体';在libGDX(Box2D)中,是指脉冲和力,而不是重力?

Java 如何阻止尸体';在libGDX(Box2D)中,是指脉冲和力,而不是重力?,java,libgdx,box2d,Java,Libgdx,Box2d,我正在做一个plataformer游戏,现在我正在做玩家的动作。因此,当我按下“A”时,播放器向左移动(player.moveLeft());当我按下“D”键时,播放器移动到右侧(player.moveRigth());当我按下“W”键时,玩家会跳(player.jump()) public void moveLeft(){ 如果(Gdx.input.isKeyPressed)(按键A)&& !Gdx.input.isKeyPressed(按键D)&& body.getLinearVelocit

我正在做一个plataformer游戏,现在我正在做玩家的动作。因此,当我按下“A”时,播放器向左移动(player.moveLeft());当我按下“D”键时,播放器移动到右侧(player.moveRigth());当我按下“W”键时,玩家会跳(player.jump())

public void moveLeft(){
如果(Gdx.input.isKeyPressed)(按键A)&&
!Gdx.input.isKeyPressed(按键D)&&
body.getLinearVelocity().x>-最大速度){
左=真;
body.applylinearpulse(-3,0,body.getPosition().x,body.getPosition().y,true);
}else if(Gdx.input.isKeyPressed)(按键D)&&
Gdx.input.isKeyPressed(按键A)&&
(空中){
停止();
}如果按下(!Gdx.input.iskey)(键A)和
!Gdx.input.isKeyPressed(按键D)&&
(空中){
停止();
}
}
公共无效移动日(){
如果(Gdx.input.isKeyPressed)(按键D)&&
!Gdx.input.isKeyPressed(按键A)&&
body.getLinearVelocity().x<最大速度){
rigth=真;
applylinearpulse(3,0,body.getPosition().x,body.getPosition().y,true);
}else if(Gdx.input.isKeyPressed)(按键D)&&
Gdx.input.isKeyPressed(按键A)&&
(空中){
停止();
}如果按下(!Gdx.input.iskey)(键D),则为else&&
!Gdx.input.isKeyPressed(按键A)&&
(空中){
停止();
}
}
公共停车场(){
body.setLinearVelocity(0,0);
体速度(0);
}
公共跳转{
如果(!inTheAir&&Gdx.input.iskeys被按下(Keys.W)){
空气=真;
body.setLinearVelocity(0,0);
体速度(0);
applylinearpulse(0,7,body.getPosition().x,body.getPosition().y,true);
}
}

它可以工作,但我有一个问题:当我在跳跃前按“a”或“D”时,当玩家在跳跃时,我松开键,玩家就会继续移动。我怎样才能修好它??请帮帮我

您必须操纵X轴速度:

Vector2 vel = body.getLinearVelocity();
vel.x = 0f;
body.setLinearVelocity(vel);
这样,Y轴的速度保持不变,但玩家不会侧向移动

Vector2 vel = body.getLinearVelocity();
vel.x = 0f;
body.setLinearVelocity(vel);