bool SpriteManager::Judge(Sprite* sp, Point location) { //获取精灵的大小 Size size = sp->getContentSize(); //创建一个矩形对象,其大小与精灵相同 Rect rect(0, 0, size.width, size.height); //判断触摸点是否在目标的范围内 if( rect.containsPoint(location) ) { //一旦进来,则说明,当前触摸点 在某个精灵范围内 if(isTouchBegin == true) { return true; } MusicManager::playPauseMenuEffect(); if(sp == allSp[0])//若是暂停图片,调用相应代码 { if(((GameLayer*)(layer))->pc->statePause == false) { ((GameLayer*)(layer))->pc->PauseStart(); } return true; } else if(sp == allSp[23]) { Director *director = Director::getInstance(); director->resume(); if(MusicManager::onSound == true) { MusicManager::playMenuLayerMusic();//播放音乐 } if(layer->getTag() == INDEX_GRAMLAYER) { ((GameLayer*)(layer))->gsm->goLevelLayer();//跳转到LevelLayer里 } else if(layer->getTag() == INDEX_FLYLAYER) { ((FlyLayer*)(layer))->gsm->goLevelLayer();//跳转到LevelLayer里 } return true; } else if(layer->getTag() == INDEX_GRAMLAYER && ((GameLayer*)(layer))->pc->PauseJudgeSp(sp))//比较节点标签 并 进行精灵判断 { return true; } else if(layer->getTag() == INDEX_LEVELLAYER && ((LevelLayer*)(layer))->llh->JudgeSp(sp))//比较节点标签 并 进行精灵判断 { return true; } else if(layer->getTag() == INDEX_MENULAYER && ((MenuLayer*)(layer))->mlh->JudgeSp(sp))//比较节点标签 并 进行精灵判断 { return true; } else if(layer->getTag() == INDEX_FLYLAYER && ((FlyLayer*)(layer))->pc->PauseJudgeSp(sp))//比较节点标签 并 进行精灵判断 { return true; } else if(layer->getTag() == INDEX_CHOICECUBELAYER && ((ChoiceCubeLayer*)(layer))->cclh->JudgeSp(sp))//比较节点标签 并 进行精灵判断 { return true; } else if(layer->getTag() == INDEX_MUSICLAYER && ((MusicLayer*)(layer))->mlh->JudgeSp(sp))//比较节点标签 并 进行精灵判断 { return true; } } return false; }