首先感谢笨木头,《cocos2d-x 3.x开发之旅》是一本很精彩的书,很庆幸自己能坚持把最后的卡牌塔防的实例学完,现把实例学习中碰到问题记录下来,希望碰到问题的伙伴们能一起交流.......@H_301_1@
1、怪物在被打死之后,发现炮塔不再攻击,查了下是英雄没有重新选择怪物导致。在怪物死亡后将其设置为不可见即可。如下(由于个人喜好对类名添加了kptf四个字母):@H_301_1@
voidkptfMonster::onDead(){@H_301_1@
this->setVisible(false);//将怪物设置成不可见,因选取攻击对象时会以可见作为选取条件@H_301_1@
this->removeFromParent();@H_301_1@
@H_301_1@
//this->removeAllChildrenWithCleanup(true);@H_301_1@
}@H_301_1@
convertToWorldSpace Thread 1:EXC_BAD_ACCESS(code=1,addresss=0x0)查了下应该是按书上的源码删除了怪物列表里的怪物导致的报错。@H_301_1@
void kptfMonsterManager::logic(float dt){@H_301_1@
Vector<kptfMonster*>monsterWantToDelete;@H_301_1@
for (auto monster:m_monsterList) {@H_301_1@
if (monster->isMoveEnd()==true) {@H_301_1@
monsterWantToDelete.pushBack(monster);@H_301_1@
}@H_301_1@
else if(monster->isDead()==true ){@H_301_1@
monsterWantToDelete.pushBack(monster);@H_301_1@
}@H_301_1@
}@H_301_1@
@H_301_1@
// for (auto monster:monsterWantToDelete) {@H_301_1@
// monster->removeFromParent();@H_301_1@
// m_monsterList.eraSEObject(monster);@H_301_1@
// }@H_301_1@
// @H_301_1@
// if (m_monsterList.size()==0) {@H_301_1@
// NOTIFY->postNotification("AllMonsterDead");@H_301_1@
// }@H_301_1@
@H_301_1@
if (m_monsterList.size()==monsterWantToDelete.size()) {@H_301_1@
NOTIFY->postNotification("AllMonsterDead");@H_301_1@
}@H_301_1@
@H_301_1@
@H_301_1@
}@H_301_1@