2

私はスプライトのコレクションを持っていますMap

private Map<String, Sprite> sprite = new HashMap<String, Sprite>();

onAreaTouched必要なのは、彼らのイベントにサブスクライブすることだけです。

私の試みは次のようなものでした:

Sprite aSprite = new Sprite(i*128, 100, region.get("regionB"), context.getVertexBufferObjectManager()){
            @Override
            public boolean onAreaTouched(final TouchEvent pSceneTouchEvent,
                                         final float pTouchAreaLocalX,
                                         final float pTouchAreaLocalY) {
                this.setPosition(pSceneTouchEvent.getX() - this.getWidth() / 2, pSceneTouchEvent.getY() - this.getHeight() / 2);
                System.out.println(String.format("spriteB %fx%f", pSceneTouchEvent.getX(), pSceneTouchEvent.getY()));
                return true;
            }
        };

scene.attachChild(aSprite);
scene.registerTouchArea(aSprite);
sprite.put("spriteB",aSprite);

ここで何をしていないのですか? また、スプライトがタッチ イベントに応答しないのはなぜですか?

ありがとう。

ログで私はこれを得る

06-10 15:11:51.598: V/AndEngine(1171): org.andengine.input.touch.TouchEvent$TouchEventPool<TouchEvent> was exhausted, with 0 item not yet recycled. Allocated 1 more.
06-10 15:11:51.598: V/AndEngine(1171): org.andengine.util.adt.pool.PoolUpdateHandler$1<TouchEventRunnablePoolItem> was exhausted, with 0 item not yet recycled. Allocated 1 more.

そして、このような行の束

06-10 15:11:51.628: W/Trace(1171): Unexpected value from nativeGetEnabledTags: 0
06-10 15:11:51.688: W/Trace(1171): Unexpected value from nativeGetEnabledTags: 0
06-10 15:11:51.708: W/Trace(1171): Unexpected value from nativeGetEnabledTags: 0
4

1 に答える 1