我的代码是这样的:
while(x<30)
{
int randomvalue= generaterandomnumber();
Sprite backgroundSprite = new Sprite(location[coordx], location[coordy], spritetobegenerated[randomvalue-1].deepCopy(),getVertexBufferObjectManager())
(Touchevents)
x++;
}
sprite保存在名为spritetobegenerated []的精灵数组中。
由于代码随机生成这些精灵,我需要一些方法来了解触摸事件发生时涉及哪个精灵。
答案 0 :(得分:0)
予。你需要在每个sprite中覆盖onAreaTouched函数,这样:
例如:
for (int i = 0; i < SPRITE_COUNT; i++) {
float x = (float) (Math.random() * CAMERA_WIDTH);
float y = (float) (Math.random() * CAMERA_HEIGHT);
final Sprite face = new Sprite(x, y this.mFaceTextureRegion, this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
this.setX(this.getX() + 1);
return true;
}
};
scene.attachChild(face);
scene.registerTouchArea(face);
}
scene.setTouchAreaBindingOnActionDownEnabled(true);
II。我会扩展一个自己的Sprite类,例如:MySprite,我在全局覆盖onAreaTouched函数,我也会引入一个索引。之后我会将一个switch(或if)语句放入onAreaTouched,取决于sprite索引。