0

これが私の'publicvoid create()'の一部です:

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;

そして、これが私の'public void render()'の一部です

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座標に再び落ちるときはいつでも、彼の「形状」に着地するため、リセットされません。何か案は?

4

1 に答える 1

0

AndEngine には Physics Connector と呼ばれるものがあり、AndEngine は Box2D の LibGDX の実装を使用するため、LibGDX にも registerPhysicsConnector() メソッドが存在する可能性があります。

于 2012-06-10T20:30:40.580 に答える