将runAction函数放到ccTouchBegan里面发生错误。。。

主要代码如下:

bool HelloWorld::init()
{


CCSprite* pSpriteUnder = CCSprite::create(“pep.png”);
spr->setPosition(ccp(48,48));
move_right = CCMoveTo::create(0.5,ccp(32,0));//move_right为成员变量
spr->runAction(move_right);
setTouchEnabled(true);

}

bool HelloWorld::ccTouchBegan(CCTouch* touch, CCEvent* event)
{


spr->runAction(move_right);

}

这个程序里面init里面的runAction可以正常执行,而ccTouchBegan在程序执行时会发生中断。
中断在库文件CCActionManager.cpp里面的这一行:pAction->startWithTarget(pTarget);
请问大家这是什么原因?

move_right你该不会是定义了在init里面,在CCTouchBegan里面调用了吧……

move_right我定义在类里面,后来把move_right改成CCMoveBy::create(0.5,ccp(-32,0))就行了,不知道为什么。

是不是因为你在init()里已经spr->runAction(move_right);在CCTouchBegan有调用了一次,试试看先stopAction(move_right),再runAction(move_right);
仅供参考。

定义在类里面你肯定没有retain……等可以执行ccTouchBegan的时候,已经被释放掉了