Ios Can';t为CC3MeshNode分配边界卷
我想用cocos3d中的boundingvolume创建一个CC3MeshNode。我用pod文件创建了一个CC3MeshNode。我想得到关于碰撞的通知Ios Can';t为CC3MeshNode分配边界卷,ios,bounding-box,cocos3d,Ios,Bounding Box,Cocos3d,我想用cocos3d中的boundingvolume创建一个CC3MeshNode。我用pod文件创建了一个CC3MeshNode。我想得到关于碰撞的通知 -(void) initializeScene { [self addContentFromPODFile: @"hello-world.pod" withName:@"pod1"]; CC3MeshNode *object1 = (CC3MeshNode*)[self getNodeNamed: @"pod1"]
-(void) initializeScene
{
[self addContentFromPODFile: @"hello-world.pod" withName:@"pod1"];
CC3MeshNode *object1 = (CC3MeshNode*)[self getNodeNamed: @"pod1"];
CC3MeshNod *object2=[[object1 copyWithName:@"pod1"]autorelease];
[object1 populateAsSolidBox:CC3BoundingBoxMake(9.5, 5.0, 4.0, 0.0, 0.0, 0.0)]; object1.location=cc3v(-5.0, 0.0, 0.0); object2.location=cc3v(5.0, 0.0, 0.0);
[self addChild:object2];
CCActionInterval *move1=[CC3MoveTo actionWithDuration:3.0 moveTo:cc3v(-1.0, 0.0, 0.0)]; CCActionInterval *move2=[CC3MoveTo actionWithDuration:3.0 moveTo:cc3v(1.0, 0.0, 0.0)]; [object1 runAction:move1];
[object2 runAction:move2];
}
-(void) updateAfterTransform: (CC3NodeUpdatingVisitor*) visitor
{
if([object1 doesIntersectNode:object2])
NSLog(@"Collision !!!!!!!!!!!!!!!!!!!!!!");
}
我试图分配边界卷,但没有成功。实际上,我对为cc3MeshNode实现boundingvolume感到困惑您上面的评论说: 我在[object1 PopulatesSolidBox:CC3BoundingBoxMake(9.5,5.0,4.0,0.0,0.0,0.0)]中得到错误代码> 这就是为什么你会有这个错误。从中可以看出,您在调用中将CC3BoundingboxMake中的最大值设置为低于分钟的值(它们都为零)
CC3BoundingBoxMake(9.5, 5.0, 4.0, 0.0, 0.0, 0.0)];
也就是说,从上面的链接中,CC3BoundingBoxMake()的签名是
当你的
minX
是9.5,你的maxX
是0.0,你的minY
是5.0,你的maxY
是0.0,你的minZ
是4.0,你的maxZ
是0.0。我在[object1 PopulatesBox:CC3BoundingBoxMake(9.5,5.0,4.0,0,0.0,0,0.0)];@Yatin Saraiya,谢谢你的回复。我从堆栈溢出本身获得了代码。当我尝试您的答案时,得到了以下错误。>>>>2013-07-17 17:47:31.015冲突样本[3006:c07]-[CC3PODResourceNode PopulatesSolidBox:]:未识别的选择器发送到实例0x8c829d02013-07-17:47:31.017冲突样本[3006:c07]***由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'-[CC3PODResourceNode PopulatesSolidBox:]:发送到实例0x8c829d0的选择器无法识别
CC3BoundingBoxMake ( GLfloat minX,
GLfloat minY,
GLfloat minZ,
GLfloat maxX,
GLfloat maxY,
GLfloat maxZ
)