はい、convertToWorldCoords!または、そのようなものです。基本的には、プレーヤーとゲームオブジェクトの位置を相互に理解する必要があります。そのための方法のひとつは、それらすべてを「世界」の座標に変換することです。または、プレーヤーの位置/長方形をゲームオブジェクトの座標系に変換することもできます。
いくつかのCGRect交差テストだけでシンプルに保ちたいですか?CCNode
カテゴリで拡張:
CCNode + CoordHelpers.h
#import "CCNode.h"
@interface CCNode (CoordHelpers)
- (CGRect) worldBoundingBox;
@end
CCNode + CoordHelpers.m
#import "CCNode+CoordHelpers.h"
@implementation CCNode (CoordHelpers)
-(CGRect)worldBoundingBox {
CGRect rect = CGRectMake(0, 0, contentSize_.width, contentSize_.height);
return CGRectApplyAffineTransform(rect, [self nodeToWorldTransform]);
}
@end
次に、超単純なCGRect衝突テストの場合:
if(CGRectIntersectsRect([playerObj worldBoundingBox], [otherObj worldBoundingBox])
{/*...do stuff...*/}
#import "CCNode+CoordHelpers.h"
この方法を使用する必要がある場所に必ず注意してください。