Cocos2d を使用して iOS でゲームを作成しています。
これは、キューブが触れられているかどうかを確認するために私が使用している方法です。
- (void)selectSpriteForTouch:(CGPoint)touchLocation {
CubeSprite * newSprite = nil;
for (CubeSprite *sprite in movableSprites) {
NSLog(@"tested against sprite %i", sprite.boundingBox.origin.x);
if (CGRectContainsPoint(sprite.boundingBox, touchLocation)) {
singleCube = true;
newSprite = sprite;
activeTag = sprite.tag;
break;
}
}
if (newSprite != selSprite) {
selSprite = newSprite;
}
}
しかし、何らかの理由で sprite.boundingBox が正しく設定されていません。
「スプライトに対してテスト済み」ログは「スプライト 0 に対してテスト」を出力するだけですが、画面にスプライトが表示されているため、これは不可能のようです。
立方体をシーンに追加するために使用する方法は次のとおりです。
-(void)addCube:(CubeSprite *)cube {
int totalCubes = [cubes count];
[cube setPosition:ccp(700 - (totalCubes * 50), 120)];
[cubes addObject:cube];
[movableSprites addObject:cube];
[self addChild:cube];
}
何が間違っている可能性がありますか?
前もって感謝します。
編集、これが私のキューブ初期化メソッドです
-(id)initWithNumber:(int)number {
if( (self=[super init])) {
[self setTag:number];
CCSprite* sprite = [CCSprite spriteWithFile:string];
[self addChild:sprite];
NSLog(@"Cube created with value of %i and with file %@", number, string);
}
return self;
}