this->schedule(schedule_selector(EnemyLayer::addEnemy1), 1.0f);//这样 创建精灵会崩溃
addEnemy1(1); //这样就不会。。。
addEnemy1 -->
Sprite *ssprite = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(buff));
为什么
this->schedule(schedule_selector(EnemyLayer::addEnemy1), 1.0f);//这样 创建精灵会崩溃
addEnemy1(1); //这样就不会。。。
addEnemy1 -->
Sprite *ssprite = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(buff));
为什么
应该是参数问题。schedule_selector要求你的addEnemy1是这样的 void addEnemy1(float dt)
参数传的是1.0f 是float 类型。没问题啊
那么,唯一区别就是延时操作会奔溃?检查一下相关的create生成的对象是否有及时的addChild操作或者retain,再检查不出就把addEnemy1里的函数一行一行注释,看哪行出问题了,createWithSpriteFrame只要cache里资源没释放应该没问题的
createWithSpriteFrame需要纹理先在缓存中存在,你可以试试看 Sprite::create()会不会崩溃就知道了。