2011-03-23 64 views
-1

已解決!cocos2d CCSprite沒有座標

獲取sprite的幀座標使用sprite.boundingBox.origin.x;

您好!
我實現一個簡單的代碼,但我不明白它的行爲:

anewSprite = [CCSprite spriteWithFile:@"grossini.png"]; 
anewSprite.position = ccp(80, 80); 
[self addChild:anewSprite]; 


anotherSprite = [CCSprite spriteWithFile:@"grossini.png"]; 
anotherSprite.position = ccp(300, 80); 
[self addChild:anotherSprite]; 



-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{ 
    CGPoint point= [touch locationInView:[touch view]]; 
    point = [[CCDirector sharedDirector] convertToGL: point]; 

    NSLog(@"point x:%f y:%f", point.x, point.y); 
    if (CGRectContainsPoint(anewSprite.textureRect, point)){ 
     NSLog(@"contains point"); 
    } else { 
     NSLog(@"does not contain"); 
    } 
    return TRUE; 
} 



-(void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event{ 
    CGPoint point= [touch locationInView:[touch view]]; 
    point = [[CCDirector sharedDirector] convertToGL: point]; 

    anewSprite.position = point; 
    if (CGRectContainsRect(anewSprite.textureRect, anotherSprite.textureRect) == TRUE) { 
     NSLog(@"Intersects"); 
    } 
} 

問題是以下幾點:

NSLog(@"anotherSpriteTextureRectOrigin X:%f Y:%f", enemy1.textureRect.origin.x, enemy1.textureRect.origin.y);
NSLog(@"anewSpriteTextureRectOrigin X:%f Y:%f", anewSprite.textureRect.origin.x, anewSprite.textureRect.origin.y);

顯示:
anotherSpriteTextureRectOrigin X:0.000000 Y:0.000000
anewSpriteTextureRectOrigin X:0.000000 Y:0.000000

在此先感謝!

+0

不要寫在標題爲 「解決」。該工作由「接受的答案」完成。 – Zabba 2011-03-30 11:40:40

回答

1

要檢查,一個精靈相交/是否包含另一個,而不是sprite.frame.rect使用sprite.boundingBox

如:

if (CGRectContainsRect(sprite1.boundingBox, sprite2.boundingBox)) { 
    NSLog(@"Contains"); 
}