2010-08-18 8 views
8

안녕하세요, 죄송합니다.이 답변을 다른 곳에서 찾을 수는 있지만 찾을 수 없습니다.Objective-C에서 스프라이트의 Z 순서를 변경하려면 어떻게해야합니까?

매우 간단합니다. Objective-C, 특히 Cocos2D에서 만드는 스프라이트의 Z- 순서를 설정하고 싶습니다.

다음 코드를 만들려고 할 때 내가 오류입니다 :

CCSprite *mySprite = [CCSprite spriteWithFile:@"Image.png" rect:CGRectMake(0, 0, 96, 24)]; 
mySprite.zOrder = 0; 

...220: error: object cannot be set - either readonly property or no setter found

Z-주문은 어떻게 든 설정 될 수 있어야 - 그것은 단지의 라인에서 설정할 수 있습니다 인스턴스 생성 후 생성 된 것이 아닌가? CCSprite의 속성에 대한 setter 메소드를 만들어야합니까? 왜 그것들은 이미 그 방법들을 가지고 있지 않았을까요? 당신의 도움에 대한

덕분에, -JJR

답변

5

그것을 알아 냈 :

자체에 스프라이트를 추가

, 매개 변수 추가해야합니다

CCSprite *mySprite = [CCSprite spriteWithFile:@"mySpriteImage.png" rect:CGRectMake(0, 0, 96, 24)]; 

[self addChild:mySprite z:1]; 

Z = 0이 배경이다, 가장 높은 z 인덱스는 다른 스프라이트 위에 있습니다.

-JJR

+3

을 도움이되기를 바랍니다 – LearnCocos2D

40

@JJR - 원래의 질문에 당신은 스프라이트를 추가 한 후 순서를 변경해야하는 경우 GamingHorror 말했듯이, 사용 당신이 필요로하는 모든이 원래 순서

JCM을 설정하는 경우

[self reorderChild:sprite z:newZ]; 

당신의 대답은 작동

1
_background.name = @"background"; 
[self addChild:_background]; 
_background.zPosition =-5; 

체크 아웃 마지막 줄에서 Z 위치, 난 당신이 또한 즉석에서 자사의 Z 순서를 변경 reorderChild 방법을 사용할 수있는이 당신에게

관련 문제