私はCCNodeを構築しています
プロパティがあります:
.h ファイル内
@property (nonatomic) int testProperty;
.mm ファイルにタグを追加し、プロパティを設定します
[[GB2ShapeCache sharedShapeCache] addShapesWithFile:@"Objects.plist"];
[CCTexture2D PVRImagesHavePremultipliedAlpha:YES];
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
batchNode = [CCSpriteBatchNode batchNodeWithFile:@"sprite.png"];
[self addChild:batchNode];
[[CCSpriteFrameCache sharedSpriteFrameCache]addSpriteFramesWithFile:@"sprite.plist"];
sprite = [CCSprite spriteWithSpriteFrameName:[NSString stringWithFormat:@"%@.png", type]];
[batchNode addChild:sprite];
[sprite setTag:2]; //SET TAG
[self setTestProperty:10]; //SET PROPERTY
...
また、ContactListenerクラスです。このコードで正しく動作し、タグでボディを検出しています:
#import "ContactListener.h"
#import "Building.h"
void ContactListener::BeginContact(b2Contact* contact)
{
b2Body* bodyA = contact->GetFixtureA()->GetBody();
b2Body* bodyB = contact->GetFixtureB()->GetBody();
Building *buildA = (Building *)bodyA->GetUserData();
Building *buildB = (Building *)bodyB->GetUserData();
if (buildA.tag == 2) {
NSLog(@"Collision with building");
}
}
問題: ContactListener からプロパティを取得する方法がわかりません
私はそれを取得しようとしました:
if (buildA.tag == 2) {
NSLog(@"Collision with building");
NSLog(@"testProperty == %i", buildA.testProperty);
}
しかし、buildA.testPropertyが機能せず、エラーが発生します
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CCSprite testProperty]: unrecognized selector sent to instance 0x434af0'
説明できる場合は、このクラスからプロパティを取得する方法を教えてください。ありがとう。