【发布时间】:2016-02-13 19:42:48
【问题描述】:
我是 cocos2d-x 的初学者,我正在 xcode 中使用 cocos2d-x 开发游戏。在我的游戏中,我添加了一个名为 man 的玩家精灵和一个名为 obs1 的障碍物精灵。现在我试图互相碰撞。为此,我正在使用以下代码,但在运行时进入 Playscene 时,它在 getpositionX 和 getpositionY 中显示了一些错误。我在头文件中将 kman 和 kobs1 声明为枚举。请帮我解决这个问题。
schedule(schedule_selector(PlayScene::update));
void PlayScene::update(float dt)
{
CCSprite *man = (CCSprite*)getChildByTag(kman);
CCSprite *obs1 = (CCSprite*)getChildByTag(kobs1);
CCRect manRect = CCRectMake(man->getPositionX(),man->getPositionY(),6,1);
CCRect obs1Rect = CCRectMake(obs1->getPositionX(),obs1->getPositionY(),6,1);
if(manRect.intersectsRect(obs1Rect))
{
CCDirector::sharedDirector()->end();
}
}
谢谢。
【问题讨论】:
-
确保在将两个 Sprite 添加到图层时设置了这些标签。在更新方法中调用它们的任何成员之前,还要检查空条件。如果需要进行连续的碰撞检查,那么你应该同时贴上
Sprites as a Member Pointer off the PlayScene类