我正在尝试使用 Box2d 测试一些碰撞检测(使用此方法)。我已将源代码和标头添加到我的 XCode 项目中,并已将递归添加./**
到我的标头搜索路径中。它似乎构建得很好。
不幸的是,由于我不明白的原因,我不能直接使用碰撞检测方法。
CollisionTest.h:
#import <Foundation/Foundation.h>
@interface CollisionTest : NSObject
-(void)test;
@end
CollisionTest.mm:
(正确重命名为 mm 以访问 C++ 代码)
#import "CollisionTest.h"
#import "Box2D.h"
@implementation CollisionTest
-(void)test {
b2CircleShape *circle1 = new b2CircleShape();
circle1->m_radius = 5.0;
b2Vec2 circle1Pos(0.0, 0.0);
b2Transform *transform1 = new b2Transform();
transform1->Set(circle1Pos, 0.0);
... ditto for circle2 ...
b2Manifold *manifold = new b2Manifold();
b2CollideCircles(&manifold, circle1, transform1, circle2, transform2);
if (manifold->pointCount > 0){
NSLog(@"collided");
} else {
NSLog(@"no collision");
}
}
@end
圆设置代码运行良好,但编译器在b2CollideCircles
“没有匹配函数调用'b2CollideCircles'”的行上出错了。
Box2d.h
默认情况下似乎不包括在内b2Collision.h
,所以我尝试将它添加到我的实现文件#import "b2Collision.h"
中#import <Box2d/Collision/b2Collision.h>
,但错误仍然相同。
如何直接访问碰撞方法?