Android 在无数码屏幕控制的情况下移动屏幕中的精灵
我想让程序,当用户按下屏幕右侧的动画移动到右侧,当在左侧时,移动到左侧。 这里的代码不起作用Android 在无数码屏幕控制的情况下移动屏幕中的精灵,android,andengine,Android,Andengine,我想让程序,当用户按下屏幕右侧的动画移动到右侧,当在左侧时,移动到左侧。 这里的代码不起作用 if (pSceneTouchEvent.getY() > 400) { AnimatedSprite _AnimSprite = new AnimatedSprite(70, 400, _TiledSprite_TR); _AnimSprite.registerEntityModifier(new MoveModifier(5, 70, Camera_width - _A
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);
}
}
if(pSceneTouchEvent.getY()>400)
{
AnimatedSprite _AnimSprite=新的AnimatedSprite(70400,_TiledSprite_TR);
_AnimSprite.registerEntityModifier(新的移动修改器(5,70,相机宽度
-_AnimSprite.getWidth(),400400));
_动画(50);
xPos=_TiledSprite_TR.getTexturePositionX();
}
其他的
{
如果((pSceneTouchEvent.getY()<400)和
pSceneTouchEvent.getY()>0)
{
AnimatedSprite\u AnimSprite=新建
动画精灵(70400,平铺精灵);
_AnimSprite.registerEntityModifier(新移动修改器)(5,
400,Camera_width-_AnimSprite.getWidth(),70400);
_动画(50);
xPos=_TiledSprite_TR.getTexturePositionX();
}
否则{
精灵=新精灵(xPos,400,Sprite\uTR);
主场景。附件(精灵);
}
}
为什么使用pSceneTouchEvent.getY()?那是上/下,不是左/右。我想你可能总是接触Y坐标小于400的区域。尝试用getX()替换,看看会发生什么。在我看来,每次触摸屏幕时都会生成一个新的精灵。这可能不是你想做的。我建议您扩展您的主类(通常是BaseGameActivity或类似活动)以使用IOnSceneTouchListener,这样您既可以访问触摸数据,也可以访问动画精灵,而不是创建一个新的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;
}
}
(可能我可以使用不可见的大数字控件,但我不知道如何更改控件大小。您的相机宽度和相机高度设置为多少?我建议在if语句中使用宽度和高度的相对值。