2009-03-05 2 views
5

iPhone 게임 개발을 위해 cocos2d를 사용하면 레이어와 장면을 혼동합니다. 예를 들어, 내 간단한 게임에는 메인 메뉴, 최고 기록, 게임 보드 등과 같은 여러 개의 "UI 페이지"가 ​​있습니다.iPhone 게임 개발을위한 Cocos2d의 레이어 대 장면

"UI 페이지"마다 레이어 또는 장면을 사용해야합니까?

답변

4

SpritesDemo.m이/.H, 그들이 레이어를 사용하고 새로운 장면을 만들어 레이어를 부착 한 후 코드는 다음을 수행

@interface SpriteDemo : Layer 
@interface SpriteManual : SpriteDemo 

감독의 장면을 교체하는 것으로 나타납니다 검토 다음

-(void)nextCallback:(id)sender { 
    Scene *s = [Scene node]; 
    [s add: [nextAction() node]]; 
    [[Director sharedDirector] replaceScene s]; 
} 

것은 그래서, 짧은에, 귀하의 질문에 대한 대답은 "모두", 당신은 실제 "UI 페이지"를 표현하기 위해 레이어를 사용하는 것입니다,하지만 당신은 새로운 장면에 레이어를 연결하고 전류를 교체 감독의 장면.

+0

CCScene보다는 CCLayer 기능을 대체해야합니다. 이런 식으로 CCScene 함수를 전혀 오버라이드 할 필요가 없습니다. – Emadpres

0

TouchEventsDelegate를 구현하는 Cocos2D의 유일한 클래스이기 때문에 터치 입력이 없으면 실제로 레이어를 사용할 필요가 없습니다. 데모는 레이어없이 장면에 직접 코드를 삽입하면 잘 작동하므로 다른 Cocos2D 기능 (어린이 추가, 위치 설정 등)을 보여줄 수 있다고 말할 수있는 한 데모가 제대로 작동합니다.

2

그것은 쉽게 :

그들은 그 예에서 CCLayer하고 새로운 장면을 만들어 그 위에 레이어를 부착 A + 장면 방법이있다. 레이어는 이름을 지정한대로 "UI 페이지"가 ​​아니기 때문에 장면은 "UI 페이지"입니다.

둘 다 (장면과 레이어)에 레이어를 더 추가 할 수 있습니다. 그래서 원하는만큼 많은 레이어를 쌓을 수 있습니다. 이는 실제로 각 객체에 대한 레이어를 만들고 해당 레이어에서 터치를 사용하여 멀티 터치를 활성화하는 좋은 방법입니다. 요점은 그들이했던 방식이 옳다는 것입니다. 따라서 레이어로 작업하고 그 + scene 메서드를 사용하여 메인 레이어를 장면에 첨부해야합니다.

희망이 도움이됩니다. 영어로 죄송합니다. 네이티브가 아닙니다.