2

みなさん、こんにちは。ゲームにスプライトを落とそうとしています。私はウェブ全体を検索し、これを行いました:

    scene = new Scene();

    main = new Sprite(sX, sY, mainTextureRegion);
    main.setScale(1);
    main.setFlippedHorizontal(true);
    scene.attachChild(main);
    mPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH), false);
    final FixtureDef objectFixtureDef = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f);
    final Body body = PhysicsFactory.createBoxBody(mPhysicsWorld, main, BodyType.DynamicBody, objectFixtureDef);
    mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(main, body, true, true));
    final Vector2 gravity = new Vector2(0, 5f);
    mPhysicsWorld.setGravity(gravity);


    scene.registerUpdateHandler(new IUpdateHandler() {
        @Override
        public void onUpdate(float pSecondsElapsed) {
            mPhysicsWorld.onUpdate(pSecondsElapsed);
        }

        @Override
        public void reset() {}
    });

しかし、私がゲームを起動したとき、スプライトは落ちません!! なぜ ??必死です!!

4

1 に答える 1

3

スプライトは物理を使用しませんが、ボディは使用します。物理コネクタを使用する必要があります (スプライトを体に接続します)。

本体変数を設定します。

Body yourBody = PhysicsFactory.createBoxBody(mPhysicsWorld, main, BodyType.DynamicBody, objectFixtureDef);

次に、この物理コネクタを使用します。

mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(main, yourBody, true, true));

私の英語でごめんなさい。

于 2012-11-05T05:59:59.953 に答える