我已经创建了一个带有触摸侦听器的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。这不是原因。我很欣赏正确方向的任何指示