2014-03-25 4 views
0

저는 cocos2d를 사용하고 있습니다. CCDrawNode을 만듭니다. 영원히 노드 규모를 만들기 위해 나는 다음과 같은 방법을 호출 CCDrawNode을 추가 addChild:를 호출하는 순간 :cocos2d CCDrawNode 스케일 경계 상자

에 액세스하려고 불행하게도

CCActionScaleBy *scaleAction = [CCActionScaleBy actionWithDuration:0.3f scale:1.1f]; 
CCActionRepeatForever *repeatForever = [CCActionRepeatForever actionWithAction:scaleAction]; 
[self runAction:repeatForever]; 

CCDrawNodeboundingBox는 폭이고 높이가 규모의 액션을 변경하지 마십시오.

그 원인은 무엇이며 어떻게 실제 너비와 높이를 얻을 수 있습니까?

감사합니다.

+1

은 현재 스케일 값과 원래 너비/높이를 곱하여, 높이를 실제 폭을 얻을 수 있습니다. –

답변

0

CCActionScaleBy 구현을 간략하게 살펴보면 노드의 scale 속성으로 재생되지만 contentSizeInPoints 속성을 변경하지는 않습니다. boundingBox은 0,0을 원점으로 사용하고 contentSizeInPoints 속성을 너비 및 높이 치수로 사용하여 얻은 rect입니다. 실제 폭과 높이를 얻기 쉬운 방법은 현재의 스케일 값으로 contentSize/boundingBox.size을 증식하는 것입니다 :

CGFloat actualWidth = self.boundingBox.size.width * self.scale; 
    CGFloat actualHeight = self.boundingBox.size.height * self.scale; 
+0

히야,이 질문에 잘 답변 할 수 있습니다 ...하지만 질문에 올 것이고 이것이 어떻게 문제를 해결하는지 궁금해 할 것입니다. 항상 당신의 이유를 설명하는 내용을 추가하는 것이 좋습니다. 솔루션이 작동했습니다. :) –

+1

@TarynEast는 내 대답을 편집했습니다. 제안에 감사드립니다. :) –