大家好,我定义了一个全局变量action, 之后我在init里给它赋了值,比如说让它移动5秒,但是没在init里run,我想在 CCTouchended 函数里run,之后我在CCTouchended 里用 sprite->runAction(action) 的时候,程序就crash了,请问action是不是不能这样做,是不是得在哪个函数里run 的时候 ,在该函数里重新赋值?
别用create,直接用new,然后自己调用initWithXXX,最后不用的时候记得释放
谢谢楼上几位指点,确实是这两个全局变量在被调用的时候已经是空的了,现在retain了一下就好了,现在对内存管理还不是太熟悉
我觉得 moveAction 和 walkAction 早已经释放掉了,你在
sprite->runAction(CCRepeatForever::create(moveAction));
这句之前加一个断言,看看 moveAction 和 walkAction 是不是空的。
你需要加retain
可以这样做的,我以前就做过一个,主角开始时是站着的,点击屏幕之后主角转换跑的动画跑到点击处,然后切换成站着。就用的你上面说的方法。
贴代码上来看看。。