C++ cocos2d-x中的碰撞检测

C++ cocos2d-x中的碰撞检测,c++,xcode,cocos2d-x,C++,Xcode,Cocos2d X,我是cocos2d-x的初学者,我正在xcode中使用cocos2d-x开发一个游戏。在我的游戏中,我添加了一个名为man的玩家精灵和一个名为obs1的障碍精灵。现在我正试图互相碰撞。为此,我使用以下代码,但在运行时,当进入游戏场景时,它在getpositionX和getpositionY中显示一些错误。我在头文件中将kman和kobs1声明为enum。请帮我解决这个问题 schedule(schedule_selector(PlayScene::update)); void Pla

我是cocos2d-x的初学者,我正在xcode中使用cocos2d-x开发一个游戏。在我的游戏中,我添加了一个名为man的玩家精灵和一个名为obs1的障碍精灵。现在我正试图互相碰撞。为此,我使用以下代码,但在运行时,当进入游戏场景时,它在getpositionX和getpositionY中显示一些错误。我在头文件中将kman和kobs1声明为enum。请帮我解决这个问题

   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();

}

}

谢谢。

为什么不开发COCOS2D中提供的两个物理引擎之一(花栗鼠或Box2D)


在这两种情况下,你都必须定义你的世界规则(即重力向量、边界等)以及你想要遵循物理规则(即质量、尺寸等)的游戏中每个元素的对象。然后可以将这些对象绑定到精灵,以便精灵位置和角度根据物理对象进行更新。您还可以绑定两个对象碰撞时调用的回调。

为什么不利用COCOS2D(花栗鼠或Box2D)中提供的两个物理引擎之一


在这两种情况下,你都必须定义你的世界规则(即重力向量、边界等)以及你想要遵循物理规则(即质量、尺寸等)的游戏中每个元素的对象。然后可以将这些对象绑定到精灵,以便精灵位置和角度根据物理对象进行更新。您还可以绑定两个对象碰撞时调用的回调。

为什么不利用COCOS2D(花栗鼠或Box2D)中提供的两个物理引擎之一


在这两种情况下,你都必须定义你的世界规则(即重力向量、边界等)以及你想要遵循物理规则(即质量、尺寸等)的游戏中每个元素的对象。然后可以将这些对象绑定到精灵,以便精灵位置和角度根据物理对象进行更新。您还可以绑定两个对象碰撞时调用的回调。

为什么不利用COCOS2D(花栗鼠或Box2D)中提供的两个物理引擎之一

在这两种情况下,你都必须定义你的世界规则(即重力向量、边界等)以及你想要遵循物理规则(即质量、尺寸等)的游戏中每个元素的对象。然后可以将这些对象绑定到精灵,以便精灵位置和角度根据物理对象进行更新。您还可以绑定当两个对象发生冲突时调用的回调。

您可以使用

man->getBoundingBox() (Return a Rect)
obs1->getBoundingBox() (Return another Rectangle
检查

if(man-> intersectsRect(obs1)
{

// Do Something 
}
谢谢

您可以使用

man->getBoundingBox() (Return a Rect)
obs1->getBoundingBox() (Return another Rectangle
检查

if(man-> intersectsRect(obs1)
{

// Do Something 
}
谢谢

您可以使用

man->getBoundingBox() (Return a Rect)
obs1->getBoundingBox() (Return another Rectangle
检查

if(man-> intersectsRect(obs1)
{

// Do Something 
}
谢谢

您可以使用

man->getBoundingBox() (Return a Rect)
obs1->getBoundingBox() (Return another Rectangle
检查

if(man-> intersectsRect(obs1)
{

// Do Something 
}

谢谢你的评论。我想在不使用你在回答中提到的任何物理引擎的情况下碰撞我的播放器和障碍物。如果有任何可能性,谢谢你的评论。我想在不使用你在回答中提到的任何物理引擎的情况下碰撞我的播放器和障碍物。如果有任何可能性,谢谢你的评论。我想在不使用你在回答中提到的任何物理引擎的情况下碰撞我的播放器和障碍物。如果有任何可能性,谢谢你的评论。我想在不使用您在回答中提到的任何物理引擎的情况下碰撞我的播放器和障碍物。如果有任何可能性,请确保在将两个精灵添加到图层时设置了这些标记。在update方法中调用任何成员之前,还要检查null条件。如果需要进行连续碰撞检查,则应将两个
精灵贴花为游戏场景的成员指针,确保在将两个精灵添加到图层时设置了这些标记。在update方法中调用任何成员之前,还要检查null条件。如果需要进行连续碰撞检查,则应将两个
精灵贴花为游戏场景的成员指针,确保在将两个精灵添加到图层时设置了这些标记。在update方法中调用任何成员之前,还要检查null条件。如果需要进行连续碰撞检查,则应将两个
精灵贴花为游戏场景的成员指针,确保在将两个精灵添加到图层时设置了这些标记。在update方法中调用任何成员之前,还要检查null条件。如果需要进行连续碰撞检查,则应将两个
精灵贴花为PlaySecene
类之外的成员指针