如何通过触摸android应用程序cocos2d移动Sprite

如何通过触摸android应用程序cocos2d移动Sprite,android,cocos2d-android,Android,Cocos2d Android,我想通过触摸屏幕来移动精灵,我想让精灵移动到我触摸的地方。 我已经实现了一个代码,但它崩溃了,我想通过触摸屏幕来移动一个精灵,但我的应用程序崩溃了 public class GameLayer extends CCLayer { static final int kTagSprite = 1; public static CCScene scene() { CCScene scene = CCScene.node(); CCLayer layer = new GameLaye

我想通过触摸屏幕来移动精灵,我想让精灵移动到我触摸的地方。 我已经实现了一个代码,但它崩溃了,我想通过触摸屏幕来移动一个精灵,但我的应用程序崩溃了

public class GameLayer extends CCLayer {

static final int kTagSprite = 1;
public static CCScene scene()
{

    CCScene scene = CCScene.node();
    CCLayer layer = new GameLayer();

    scene.addChild(layer);


    return scene;
}

protected  GameLayer()
{
    this.setIsTouchEnabled(true);

    CCSprite player2 = CCSprite.sprite("Yellow.png") ;
    player2.setPosition(CGPoint.ccp(150 , 150));

    addChild(player2 , kTagSprite );

}

@Override
public boolean ccTouchesBegan(MotionEvent event) {
    //create point takes coordinates of touch
    CGPoint convertedLocation = CCDirector.sharedDirector()
        .convertToGL(CGPoint.make(event.getX(), event.getY()));



    CCNode s = getChild(kTagSprite);
    s.stopAllActions();
    s.runAction(CCMoveTo.action(1.0f, convertedLocation));


    return CCTouchDispatcher.kEventHandled;
    }

}

您必须检查以下情况:

**

**


它会起作用。试试这个。如果不放置日志,您在addchild函数中使用了kTagSprite作为错误的参数。您已将addchild函数用作:

addchild(spriteParameter, z-orderParameter); 
您需要将addchild用作:

addchild(spriteParameter, z-orderParameter, spriteTagParameter);
因此,您需要替换:

addChild(player2, kTagSprite );
与:


欢迎来到堆栈溢出。你能提供更多的信息吗,比如你收到的错误信息?此外,你是否已经将代码缩减到了最基本的部分;为了找到代码正常工作的点?
addChild(player2, kTagSprite );
addChild(player2, 1, kTagSprite );