私には10レベルあります。通常のゲームと同じように、レベルを上回らない限り、次のレベルをプレイすることはできません。各レベルで変化する唯一の部分は、スプライトとスプライトの位置です。レベル - Cocos2d
レベルを上げると次のレベルのロックが解除され、次にどのレベルのレベルが区別され、定義された「詳細」(スプライトファイルと位置)がロードされますか?
ご協力いただきありがとうございます。ありがとう!
EDIT:
私はレベル
まずに関するすべての情報をロードするためのplistを使用し、私はPLISTを作成した(右の[グループ]をクリックし、リソースをクリックし、「プロパティリスト」 )。次に、PLIST内のすべての情報を定義しました。
次に、レベル番号を設定するグローバル変数を設定します。ユーザがどちらのレベル(CCMenu)を選択した場合、本方法はintレベルを正しいレベル番号(例えば1,2,3,4,5)に変更する。次に、私のゲームのinitでintレベルをチェックし、PLISTからレベルを実行します。
これは私のレベルメソッドで、レベルチェック後にgamescene initが実行されます。 PLISTをロードし、辞書を設定し、背景を選択してレイヤーに追加し、次にintファイル "_ballX、_ballY"を宣言して、initファイルにあるボールの位置の値を設定します。
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Levels.plist"];
NSDictionary *plistDataAll = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
NSDictionary *levelData = [NSDictionary dictionaryWithDictionary:[plistDataAll valueForKey:@"LevelOne"]];
NSString *background = [levelData objectForKey:@"LevelBackground"];
_m = [CCSprite spriteWithFile:background];
_m.anchorPoint = ccp(0, 0);
_m.position = ccp(0, 0);
[self addChild:_m];
_ballX = [[levelData valueForKey:@"BallPositionX"] intValue];
_ballY = [[levelData valueForKey:@"BallPositionY"] intValue];
これが誰かを助けてくれることを願っています!非常に迅速な回答の皆様、ありがとう!
基本的に、スプライトなどのレベルごとに別のクラスがありますか?私は10レベルしか持っていないので、私はそれをする必要はないと思っていました。毎回2つのものを変更しています。レベルを確認する方法はありますか?たぶん、レベル番号にグローバルintを使用し、intをチェックして、追加するスプライトとそれをどこに移動するかを決定しますか? – Jonathan
また、その情報をすべて含んだ.plistファイルを作成して、そのシーンのデータをplistから取得するようにすることもできます。 –
これを行う最もクリーンな方法だと思います。変更してすべての定数あなたの抽象クラスまたは単なるスーパークラスのもの。それはたくさんのファイルのように見えるかもしれませんが、私はそうするのが簡単だと思います。 –