ゲーム用のレベル エディタを作成中です。cocos2d を使ってゲームを作っています。CCNode のサブクラスであり、ゲーム内のすべてのレベル オブジェクトを含むレベル ノードがあります。その後、レベルが CCLayer に追加されます。レベルのすべての子 (NSMutableArray) をリソース フォルダー内のファイルに保存したいと考えています。この NSMutableArray をロードしてループし、保存されているすべてのレベル オブジェクトをレベルに追加したいと考えています。これらのレベル オブジェクトをローカル デバイスに保存することはできません。これは、最終的なゲームのレベルがこのファイルに基づいており、他のデバイスが他のすべてのゲーム リソースと共にこのファイルを準備する必要があるためです。これを行う方法はありますか?それとも、レベル オブジェクトのすべてのプロパティを含む文字列を保存し、それらの文字列を検索して、レベルをロードするために必要な情報を探す必要がありますか? もしそうなら、NSString と組み合わせて ac 構造体をファイルに読み書きする方法はありますか? これが私がこれまでに持っているものです:
NSString * filePath = @"LevelSaves.txt";
NSString * fileRoot = [[NSBundle mainBundle]pathForResource:filePath ofType:@"txt"];
NSString * fileContents = [NSString stringWithContentsOfFile:fileRoot encoding:NSUTF8StringEncoding error:nil];
NSArray * allLinedStrings = [fileContents componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
ObjectFactory * objFactory = ObjectFactory::sharedObjectFactory();
for (NSString * curString in allLinedStrings) {
NSArray * seperatedString = [curString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@";"]];
NSString * objectID = (NSString*)[seperatedString objectAtIndex:0];
NSArray * properties = (NSArray*)[seperatedString objectAtIndex:1]; //not really sure about this part. Haven't tried saving anything there yet.
objFactory->createObject(objectID,properties);