【发布时间】:2013-11-22 07:38:42
【问题描述】:
首先我会展示图片来解释我的问题
图片说明:
我有 2 个精灵 RED 和 white。我附上了
- 带有场景的红色精灵和
- 白色雪碧与红色雪碧
我已经移动并缩放了它 Red Sprite 和 white sprite 就像在第二张图片中一样
我的问题
我已经注册了触摸监听器。但是我想在缩放完整图像时注册白色精灵的触摸(在第二张图像情况下)
但是当我完全按比例注册触摸时,它不会触发触摸。
要触发触摸,我必须在 图像 1 之前注册两个精灵触摸
我也看到过类似的问题 here.
我的代码
> `titleScene = new Scene();
titleScene.setBackground(new Background(0, 1, 0));
A_Background_Sprite = new Sprite(0, 0, A_Background_TextureRegion, activity.getVertexBufferObjectManager());
titleScene.attachChild(A_Background_Sprite);
RED_Sprite = new Sprite(50, 50, RED_TextureRegion, activity.getVertexBufferObjectManager()){
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
if(!RED_Sprite.isScaled())
{
Log.i("Apple_Background_Sprite", "setOnClickListener");
AppleX=(int) RED_Sprite.getX();
AppleY= (int) RED_Sprite.getY();
RED_Sprite.registerEntityModifier(new SequenceEntityModifier(new MoveModifier(1f, RED_Sprite.getX(), camera.getCenterX(), RED_Sprite.getY(),camera.getCenterY()),new ScaleModifier(1f, 1f, 2f, new IEntityModifierListener() {
public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
white_Sprite.setVisible(true);
titleScene.registerTouchArea(white_Sprite);
}
public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
}
},EaseLinear.getInstance())));
}
else
{
// Spelling_Background_Sprite.registerEntityModifier(new MoveModifier(4f, camera.getWidth(), 20, 400, 400));
}
return true;
// here you can use the code
}
};
RED_Sprite.setSize(150f, 150f);
titleScene.setTouchAreaBindingOnActionDownEnabled(true);
white_Sprite.setVisible(false);
titleScene.attachChild(RED_Sprite);
RED_Sprite.attachChild(white_Sprite);
titleScene.registerTouchArea(RED_Sprite);
请看一下
RED_Sprite.registerEntityModifier(new SequenceEntityModifier(new MoveModifier(1f, RED_Sprite.getX(), camera.getCenterX(), RED_Sprite.getY(),camera.getCenterY()),new ScaleModifier(1f, 1f, 2f, new IEntityModifierListener() {
public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
white_Sprite.setVisible(true);
titleScene.registerTouchArea(white_Sprite);
}
【问题讨论】: