我创建了一个带有触摸监听器的 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。这不是肯定的原因。我将不胜感激任何正确方向的指示