2011-03-23 98 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"); 
}