Я пытаюсь проверить обнаружение столкновений с 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>
, но ошибка остается той же.
Как получить прямой доступ к методам коллизий?