当玩家被某个物体挡住时,视差背景层仍在移动

时间:2017-11-25 18:16:14

标签: android libgdx box2d

在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");
        }

    }

}

请帮帮我..!我搜索了很多但从未找到任何确切的解决方案。 你的帮助将使我的项目保持活力,否则我必须关闭这个项目。

谢谢,抱歉英文不好..

0 个答案:

没有答案