Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将多个碰撞造型附着到单个刚体_Ios_Cocos2d Iphone_Chipmunk - Fatal编程技术网

Ios 将多个碰撞造型附着到单个刚体

Ios 将多个碰撞造型附着到单个刚体,ios,cocos2d-iphone,chipmunk,Ios,Cocos2d Iphone,Chipmunk,我已经用iOS+Cocos2d+Chipmunk创建了一个单人游戏,我正在寻找一个解决方案,演示如何将多个碰撞形状附加到一个刚体上。我有一个不规则形状的目标(一辆车),我需要检测碰撞。玩家可以从侧面看到目标(汽车),其他物体可能会从多个方向撞击目标,而不仅仅是从前面或后面。该形状使我无法使用单个cpPolyShape并实现逼真的碰撞效果。两个CPPolyShape(矩形)堆叠在彼此的顶部,底部矩形更大,应该可以实现这一目的 有人能举例说明如何做到这一点吗 我阅读了花栗鼠关于cpShape的文档,

我已经用iOS+Cocos2d+Chipmunk创建了一个单人游戏,我正在寻找一个解决方案,演示如何将多个碰撞形状附加到一个刚体上。我有一个不规则形状的目标(一辆车),我需要检测碰撞。玩家可以从侧面看到目标(汽车),其他物体可能会从多个方向撞击目标,而不仅仅是从前面或后面。该形状使我无法使用单个cpPolyShape并实现逼真的碰撞效果。两个CPPolyShape(矩形)堆叠在彼此的顶部,底部矩形更大,应该可以实现这一目的

有人能举例说明如何做到这一点吗

我阅读了花栗鼠关于cpShape的文档,在“注释”部分的页面底部,它指出“可以将多个碰撞形状附加到刚体”,但没有提供示例


我目前有一个工作,功能项目,并试图作出一些最后的调整,以改善游戏

调用cp*ShapeNew()时,第一个参数是要将其附加到的主体。简单制作多个共享同一身体的形状。没有技巧。

您可以添加该方法

在.h文件中添加原型

static int FunctionName (cpArbiter *arb, cpSpace *space, void *unused);
现在在.m文件中,将代码添加为

    cpSpaceAddCollisionHandler(<space name>, <cpCollisionType of  body a >, <cpCollisionType of body b>, <cpCollisionBeginFunc name>, <cpCollisionPreSolveFunc preSolve>, <cpCollisionPostSolveFunc postSolve>, <cpCollisionSeparateFunc separate>, <void *data>);

static int FunctionName(cpArbiter *arb, cpSpace *space, void *unused)
{
    cpShape *a, *b; cpArbiterGetShapes(arb, &a, &b);    
    printf("\n Collision Detected");    
    return 1;   
}
cpSpaceAddCollisionHandler(,,,);
静态int函数名(cpArbiter*arb、cpSpace*空格、void*未使用)
{
cpShape*a,*b;cparbitergetshape(arb,&a,&b);
printf(“\n检测到冲突”);
返回1;
}
注意:-不要忘记给出两个车身的碰撞类型