大家看了这题目之后或许可能会淡然一笑,心想:这会有什么问题吗?正常情况下,两个精灵放在同一个层,这样子是没有问题的,但是你有没有试过两个精灵在不同层的碰撞检测?如果你尝试过,就知道这篇文章为什么会诞生了……
我有一个HelloWorld,这个是主场景,我在主场景中添加了一个游戏层,GameLayer的实例,添加了一个碰撞精灵,Pig的实例。在这里多说一句,我的适配使用了:CCEGLView::sharedOpenGLView()->setDesignResolutionSize(1280, 720, kResolutionNoBorder);
Pig添加:【其中的一个需要进行碰撞检测的精灵】,方法如下:
1
2
3
4
5
6
|
void
HelloWorld::addPig()
{
Pig *pig = Pig::getInstance();
pig->setPosition(ccp(300,200));
this
->addChild(pig);
}
|
GameLayer添加:【游戏层】,方法如下:
1
2
3
4
|
// init gamelayer
m_pGameLayer = GameLayer::create();
m_pGameLayer->setPosition(ccp(500,0));
addChild(m_pGameLayer);
|
这两个操作之后,我们就把游戏层和游戏精灵加载到场景中了,接下来处理下主场景: