2013-12-21 2 views
4

왜 SKSpriteNode node.frame.size.width가 node.size.width보다 작습니까?
여기 은 아마 당신이 당신의 자신의 이미지를 삽입해야합니다, 예를 들어 코드왜 SKSpriteNode node.frame.size.width가 node.size.width보다 작습니까?

- (void)DrawRect:(SKSpriteNode *)node 
{ 
SKShapeNode *rect = [[SKShapeNode alloc] init]; 

CGMutablePathRef myPath = CGPathCreateMutable(); 
CGPathAddRect(myPath, nil, node.frame); 
rect.path = myPath; 
rect.lineWidth = 1; 

rect.strokeColor = [SKColor whiteColor]; 
rect.glowWidth = 0; 
[self addChild:rect]; 
} 

// 여기에

-(void) DrawSpriteNode 
{ 
SKTextureAtlas *atlas = [SKTextureAtlas atlasNamed:@"character"]; 
SKSpriteNode* node = (SKSpriteNode *)[SKSpriteNode spriteNodeWithTexture:[atlas   textureNamed:@"testimage.png"]]; 

node.position = CGPointMake(self.anchorPoint.x, self.anchorPoint.y); 
NSLog(@"node frame width x :%f",node.frame.size.width); 
NSLog(@"node frame height y :%f",node.frame.size.height); 
NSLog(@"node width y :%f",node.size.width); 
NSLog(@"node height y :%f",node.size.height); 

node.anchorPoint = CGPointMake(0.5, 0.5); 
[self DrawRect: node]; 
[self addChild:node]; 
} 

답변

5

SKSpriteNode 개체의 size 속성은 수있는 특별한 속성입니다 스프라이트를 그릴 크기를 명시 적으로 설정합니다. frame 속성은 여러 속성을 사용하여 SKNode 개체에 의해 계산됩니다. 다음 견적은 SKSpriteNode가 상속받은 SKNode 객체에 대한 Apple의 설명서에서 인용 한 것입니다.

"frame 속성은 배율 및 회전 속성으로 수정 된 노드의 시각적 콘텐츠에 대한 경계 사각형을 제공합니다. 노드의 클래스는 내용을 그립니다. 각 노드 하위 클래스는이 내용의 크기를 다르게 결정합니다. 일부 하위 클래스에서는 SKSpriteNode 클래스와 같이 노드 내용의 크기가 명시 적으로 선언됩니다. 다른 하위 클래스에서는 내용 크기가 예를 들어, SKLabelNode 객체는 레이블의 메시지 텍스트와 글꼴 특성을 사용하여 내용 크기를 결정합니다. "

관련 문제