在libgdx中开发我的第一个游戏,我刚开始使用Box2d物理。
我有6个分层的视差背景..它的工作正常
问题是当我的角色被某个物体挡住并且仍然按下左或右按钮时,我的视差背景层仍在移动。
我尝试使用ContactactListerner来识别碰撞,但它不起作用
::::::::::::::::这是解释代码::::::::::::::
我的一个视差背景图层
sb.draw(treesBack, treesBackX, 0, width / Hunter.PPM, height / Hunter.PPM,
uRight, vTop, 0, 0);
handleInput CODE:
//if right button pressed
if((hud.BUTTON_R == true) && (player.b2body.getLinearVelocity().x <= 2)){
player.b2body.applyLinearImpulse(new Vector2(1f, 0),
player.b2body.getWorldCenter(), true);
if(colliding != true){
treesBackX -= 1 * dt;
}
}
ContactListener代码:
public boolean colliding = false;
@Override
public void beginContact(Contact contact) {
Fixture fixA = contact.getFixtureA();
Fixture fixB = contact.getFixtureB();
if(fixA.getUserData() == "side" || fixB.getUserData() == "side"){
Fixture side = fixA.getUserData() == "side" ? fixA : fixB;
Fixture object = side == fixA ? fixB : fixA;
if(object.getUserData() != null){
colliding = true;
Gdx.app.log("Side Collision", "True");
}
}
}
请帮帮我..!我搜索了很多但从未找到任何确切的解决方案。 你的帮助将使我的项目保持活力,否则我必须关闭这个项目。
谢谢,抱歉英文不好..