Box2d との衝突検出をテストしようとしています (このメソッドを使用)。ソースとヘッダーを XCode プロジェクトに追加./**
し、ヘッダー検索パスに再帰を追加しました。それはうまく構築されているように見えます。
残念ながら、理由がわかりませんが、衝突検出方法を直接使用することはできません。
CollisionTest.h:
#import <Foundation/Foundation.h>
@interface CollisionTest : NSObject
-(void)test;
@end
CollisionTest.mm:
(C++ コードにアクセスするために適切に名前を mm に変更)
#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>
が、エラーは同じままです。
衝突メソッドに直接アクセスするにはどうすればよいですか?