如何摆脱不需要的形状



这是我的"公共无效创建()"的一部分:

overallTexture = new Texture(Gdx.files.internal("data/sprite1.png"));
overallTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
jumperSprite = new Sprite(overallTexture, 0, 0, 32, 37);
spriteBatch = new SpriteBatch();
world = new World(new Vector2(0.0f, -10.0f), true);
    BodyDef jumperBodyDef = new BodyDef();
    jumperBodyDef.type = BodyDef.BodyType.DynamicBody;
    jumperBodyDef.position.set(1.0f, 3.0f);
    jumper = world.createBody(jumperBodyDef);
    PolygonShape jumperShape = new PolygonShape();
    jumperShape.setAsBox(jumperSprite.getWidth() / (2 * PIXELS_PER_METER),
    jumperSprite.getHeight() / (2 * PIXELS_PER_METER));
    jumper.setFixedRotation(true);
    FixtureDef jumperFixtureDef = new FixtureDef();
    jumperFixtureDef.shape = jumperShape;
    jumperFixtureDef.density = 1.0f;
    jumperFixtureDef.friction = 5.0f;

这是我的"公共无效渲染()"的一部分

if (jumper.getPosition().y < 0.4) {
        overallTexture = new      Texture(Gdx.files.internal("data/sprite1.png"));
        overallTexture.setFilter(TextureFilter.Linear,  TextureFilter.Linear);
        jumperSprite = new Sprite(overallTexture, 0, 0, 32, 37);
        spriteBatch = new SpriteBatch();
        BodyDef jumperBodyDef = new BodyDef();
        jumperBodyDef.type = BodyDef.BodyType.DynamicBody;
        jumperBodyDef.position.set(1.0f, 3.0f);
        jumper = world.createBody(jumperBodyDef);
        PolygonShape jumperShape = new PolygonShape();
        jumperShape.setAsBox(jumperSprite.getWidth() / (2 * PIXELS_PER_METER),
        jumperSprite.getHeight() / (2 * PIXELS_PER_METER));
        jumper.setFixedRotation(true);
        FixtureDef jumperFixtureDef = new FixtureDef();
        jumperFixtureDef.shape = jumperShape;
        jumperFixtureDef.density = 1.0f;
        jumperFixtureDef.friction = 5.0f;
        jumper.createFixture(jumperFixtureDef);
        jumperShape.dispose();

    }

现在会发生什么:每当角色到达某个 Y 坐标时,它会将他重置为起点。错误在于,每当发生这种情况时,它重置他的Y坐标,他的"形状"仍然在那里充当一个盒子。因此,每当你再次落到那个Y坐标时,你不会被重置,因为你落在他的"形状"上。有什么想法吗?

AndEngine有一个叫做Physics Connector的东西,因为AndEngine使用LibGDX的Box2D实现,所以LibGDX中也存在registerPhysicsConnector()方法。

最新更新