Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 和发动机平滑的手指跟随_Android_Andengine_Game Engine - Fatal编程技术网

Android 和发动机平滑的手指跟随

Android 和发动机平滑的手指跟随,android,andengine,game-engine,Android,Andengine,Game Engine,我希望精灵能顺利地跟随我的手指 该场景已注册为触摸事件,到目前为止,我有以下内容: @Override public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) { Vector2 characterPosition = mCharacterSprite.getBody().getPosition(); float sceneX = pSceneTouchEvent.getX();

我希望精灵能顺利地跟随我的手指

该场景已注册为触摸事件,到目前为止,我有以下内容:

@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
    Vector2 characterPosition =  mCharacterSprite.getBody().getPosition();
    float sceneX = pSceneTouchEvent.getX();
    float charaX = characterPosition.x * 32;
    float sceneY = pSceneTouchEvent.getY();
    float charaY = characterPosition.y * 32;

    if( Math.abs(sceneX - charaX) < 100 && Math.abs(sceneY - charaY) < 100) {
        mCharacterSprite.registerEntityModifier(new MoveModifier(0.01f, charaX , sceneX, charaY, sceneY));
    }
    return false;
}
@覆盖
公共布尔onSceneTouchEvent(场景pScene、触摸事件pSceneTouchEvent){
Vector2 characterPosition=mCharacterSprite.getBody().getPosition();
float-sceneX=pSceneTouchEvent.getX();
浮点字符x=字符位置x*32;
float-sceneY=pSceneTouchEvent.getY();
浮点字符y=characterPosition.y*32;
if(Math.abs(sceneX-charaX)<100&&Math.abs(sceneY-charaY)<100){
McCharacterSprite.registerEntityModifier(新的MoveModifier(0.01f,charaX,sceneX,charaY,sceneY));
}
返回false;
}
问题是精灵总是回到中心,他在屏幕上随意移动,而不是跟着我的手指

我做错了什么?

试试这个代码。。。它起作用了。 只需在块中设置“sprite.setPosition(pSceneTouchEvent.getX(),pSceneTouchEvent.getY()”,甚至不必在场景中注册sprite的touchEvent

@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) 
{

        sprite.setPosition(pSceneTouchEvent.getX(), pSceneTouchEvent.getY());
    return false;
}