我想制作程序,当用户按下屏幕右侧时,动画向右移动,向左移动到左侧。 这里的代码不起作用
if (pSceneTouchEvent.getY() > 400)
{
AnimatedSprite _AnimSprite = new AnimatedSprite(70, 400, _TiledSprite_TR);
_AnimSprite.registerEntityModifier(new MoveModifier(5, 70, Camera_width
- _AnimSprite.getWidth(), 400, 400));
_AnimSprite.animate(50);
xPos = _TiledSprite_TR.getTexturePositionX();
}
else
{
if ((pSceneTouchEvent.getY() < 400)&&
pSceneTouchEvent.getY() > 0))
{
AnimatedSprite _AnimSprite = new
AnimatedSprite(70, 400, _TiledSprite_TR);
_AnimSprite.registerEntityModifier(new MoveModifier(5,
400, Camera_width - _AnimSprite.getWidth(), 70, 400));
_AnimSprite.animate(50);
xPos = _TiledSprite_TR.getTexturePositionX();
}
else{
Sprite _Sprite = new Sprite(xPos, 400, _Sprite_TR);
MainScene.attachChild(_Sprite);
}
}
答案 0 :(得分:0)
为什么选择pSceneTouchEvent.getY()?这是上/下,而不是左/右。我想你可能总是触摸Y坐标小于400的区域。尝试用getX()替换,看看会发生什么。
答案 1 :(得分:0)
在我看来,每次触摸屏幕时都会生成一个新的精灵。这可能不是你想要做的。我建议你扩展你的主类(通常是你的BaseGameActivity或类似的活动)来使用IOnSceneTouchListener,这样你就可以访问触摸数据并访问你的animatedSprites,而不是创建一个无法访问任何新的IOnSceneTouchListener。你的动画精灵。
public class Game extends BaseGameActivity implements IOnSceneTouchListener
{
private AnimatedSprite animatedSprite;
@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent)
{
// Access your animated sprites here and make them move based on the touch data
return true;
}
}
这些方面的东西。