为什么buttonSprite Array中的onTouchEvent侦听器返回所有相同的值?

时间:2013-09-04 12:36:20

标签: android arrays while-loop andengine ontouchevent

我已经创建了一个带有触摸侦听器的SpriteButtons数组,如下所示:

attackCursor.moveToFirst();
while (attackCursor.isAfterLast() == false) {   
    attackButtons[attackButtonsCounter] = new ButtonSprite(0, 0,
        PlayerMenu.getPlayerMenuAttackTR(),
        engine.getVertexBufferObjectManager()) {

        @Override
        public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
                                     float pTouchAreaLocalX,
                                     float pTouchAreaLocalY) {

            if (pSceneTouchEvent.isActionDown()) {
                beep.play();
                attackType = Cursor.getInt(0);
            }

            return true;
        }
    };
    attackButtonsCounter++;
}

当我以这种方式运行时,我收到有关触摸事件的错误消息。如果我用theAttackButtonsCounter替换Cursor.getInt(0)它只是使所有按钮都具有上一次循环运行的数据。在循环生成时将代码插入onAreaTouch()是否有问题?我知道我的触摸方法上面没有@Override。这不是原因。我很欣赏正确方向的任何指示

0 个答案:

没有答案