在超级玛丽游戏中,马里奥在移动,怪物也在移动,当他们遇见时,需要判断是马里奥身亡还是怪物身亡。
这个判断的代码在怪物类的检测函数实现中。
比如蘑菇怪的冲突检测函数:
bool CMMonsterMushrooms::OnCollisionMario()
{
do
{
CCNode* pMushrooms = dynamic_cast<CCNode*>(getChildByTag(enTagMainNode));
CC_BREAK_IF(pMushrooms==NULL);
//马里奥与蘑菇怪的碰撞
if (m_pMario->boundingBox().intersectsRect(boundingBox()))
{
//被踩死
if (getPositionY()<m_pMario->getPositionY() && abs(m_pMario->getPositionY()-getPositionY())>boundingBox().size.height*0.8)
{
//移除行走动画
removeChildByTag(enTagMainNode);
//ccbi读取
//构造一个ccbi文件读取器
CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
cocos2d::extension::CCBReader * pCcbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary);
//读取动画文件
CCNode *pCcbiNode = pCcbReader->readNodeGraphFromFile("ccbResource