동적으로 생성 된 수십 개의 미니 레벨이있는 게임을 만들고 있습니다. 단순화하기 위해, A, B, C의 세 가지 유형이 있으며 각각은 정수 난이도를 가질 수 있다고 가정 해 봅시다. LevelA, LevelB 및 LevelC는 CCLayer의 하위 클래스이며 한 번에 하나씩 CCScene의 하위 클래스 인 GameScene에로드했습니다. 나는이 방법에 결혼하지 않았다. 그것은 단지 일하고있는 것입니다.동기식 CCLayers - 복잡한 정의 된 순서로 실행중인 레벨
내가 알 수없는 것은 전반적인 방식으로 레벨의 흐름을 제어하는 방법입니다.
새로운 레벨을로드하는 간단한 방법은 처럼 [[CCDirector sharedDirector] replaceScene:[newScene node]]
모델을 복제하는 것 같습니다.
다음 수준으로의 호출이 현재 수준의 코드 내에있는 경우에만 작동합니다.
-(void)checkScore {
if (score >= 10) {
[[GameScene sharedScene] replaceGameplayLayer:[LevelB newLevelWithDifficulty:currentLevelDifficulty]];
}
}
그리고 C를로드 할 LevelB 클래스에서 동일한 작업을 수행 : 같은 것을 - 내가 A-수준에있어 경우에 따라서, 나는 해당하는 B-레벨 I 10 점을 누를 때마다를로드 할 수 있습니다 - 레벨, 또는 다른 구성.
하지만 레벨 주문을 계획하고 싶다면 어떻게해야합니까? A1, B1, C1, C2, C3, C4, C5, A2 등? 나는 각 레벨을 함수의 동기식 라인으로 취급하고 싶습니다. 좋아요 :
-(void)playGame {
[LevelA newLevelWithDifficulty:1];
[LevelB newLevelWithDifficulty:1];
for (int i = 0; i < 5; i++) {
[LevelC newLevelWithDifficulty:i];
}
// ...etc...
}
나는 어떻게 문제를 해결할 수 있을지 모르겠다. 심지어 가능할까요? checkScore 메서드가 현재 레벨을 10 포인트 만 죽일 정도로 쉽지만 LevelB가 발생할 때까지 어떻게 유지합니까?
이 질문에 대한 답변을 드리겠습니다. 당신이 제공 할 수있는 모든 도움을 주시면 감사하겠습니다.
고마워! 시퀀스를 끝까지 작성하면 작업을 수행하는 것 같습니다. 위의 for 루프와 같이 수준의 순서를 스크립팅하는 것이 좋겠지 만 가능하지 않다면 그것 없이도 살 수 있습니다. – arthurlewis
yah ... 내 게임을위한 스크립팅 프레임 워크를 주로 스릴을 위해 만듭니다. Kobold는 LUA 스크립팅 언어에 대한 내장 기능을 갖추고 있으며 cocos2d의 일부 버전을 기반으로합니다. 여기를보십시오 http://www.kobold2d.com/display/KKSITE/Home – YvesLeBorg
사실, 구현하려고하고 있습니다. 일부 경우에는 레벨 순서를 동적으로 생성해야하기 때문에 시퀀스를 쓰는 것은 옵션이 아닙니다. 그렇다면 "적절한 순서로 레벨 배열을 만드는 것"은 무엇을 의미합니까?레벨은 거의 동일하므로 거의 모든 애셋을 공유하므로 너무 많은 텍스처를로드하는 것에 대해 걱정하지 않습니다. 배열을 동적으로 채울 수는 있지만 실제로 무엇이 포함되는지는 잘 모르겠습니다. 선택자? – arthurlewis