Java 如何阻止尸体';在libGDX(Box2D)中,是指脉冲和力,而不是重力?
我正在做一个plataformer游戏,现在我正在做玩家的动作。因此,当我按下“A”时,播放器向左移动(player.moveLeft());当我按下“D”键时,播放器移动到右侧(player.moveRigth());当我按下“W”键时,玩家会跳(player.jump())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
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);