cocos2d-x中的碰撞检测
Collision Detection in cocos2d-x
我是cocos2d-x的初学者,我正在xcode中使用cocos2d-x开发游戏。在我的游戏中,我添加了一个名为man的玩家精灵和一个名为obs1的障碍精灵。现在我试着互相碰撞。为此,我使用以下代码,但在运行时,而进入Playscene它显示一些错误在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();
}
}
谢谢。
你可以使用
man->getBoundingBox() (Return a Rect)
obs1->getBoundingBox() (Return another Rectangle
和check
if(man-> intersectsRect(obs1)
{
// Do Something
}
谢谢
为什么不利用COCOS2D (Chipmunk或Box2D)中提供的两种物理引擎之一
http://chipmunk-physics.net/release/ChipmunkLatest-Docs/http://www.iforce2d.net/b2dtut/collision-callbacks在这两种情况下,你都必须定义游戏世界的规则(如重力矢量、边界等),并为你想要遵循物理规则的游戏元素定义对象(如质量、尺寸等)。然后你可以将这些对象绑定到精灵上,这样精灵的位置和角度就会根据物理对象进行更新。还可以绑定两个对象碰撞时调用的回调。
相关文章:
- 落砂模拟碰撞检测C++和SFML
- SFML 中的重力和碰撞检测
- 我的碰撞检测中的奇怪行为
- 如何为球形物体和三角形地形提供高效的碰撞检测和响应
- 圆形与方形碰撞检测以及需要响应C++ |OpenGL。我的问题就是这个"I need to keep the circle outside the square"
- 在Qt3D中进行碰撞检测的预期方法(或好方法)是什么?
- 在碰撞检测方面苦苦挣扎.如何正确检测碰撞?
- 三角形-三角形碰撞检测问题
- 不同类别之间的C SFML碰撞检测
- 使用D3DXVECTOR C 的碰撞检测,发生碰撞后该怎么办
- 当我发生碰撞检测时,矢量迭代器不兼容
- 如何使用灵活的碰撞库在两个点云或点云与机器人末端执行器模型之间进行碰撞检测
- 优化碰撞检测C
- 使用碰撞检测来增加SFML 2.4中的游戏分数的问题
- 使用OnComponentHit UE4 C++进行碰撞检测
- 体素世界中的碰撞检测
- 如何在 2D 碰撞检测中正确解析碰撞的位置?
- (中广)获取AABB树生成的边界立方体进行碰撞检测
- 使用C 中的单元格 /图块 /网格进行碰撞检测的最佳数据结构
- cocos2d-x中的碰撞检测