2012-03-03 4 views
0

Мне было интересно, какой лучший способ хранения данных будет в моей игре Cocos2d.Текстовый файл для использования

Когда моя игра начинается, она выбирает случайный тип врага. В зависимости от уровня количество врагов меняется. То, что я хочу сделать, это иметь файл, на который наложено множество врагов. Я хотел бы иметь это в отдельном файле, если это возможно, так что его легко настроить и изменить.

ПРИМЕР

Скажем для Уровня 3, Enemy_1 выбран. Затем он переходит в файл данных Enemy_1, а затем находит количество создаваемых спрайтов.

При поиске способа сделать это я не указал, что есть несколько файлов, встроенных в xCdoe, которые я мог бы использовать. К ним относятся: файл строк, список свойств и текстовый файл. Лучше всего предположить, что мне придется использовать список свойств, но я не уверен, как они работают, и как это можно реализовать в моей игре. Возможно, вы могли бы дать мне код для того, как это сделать?

Заранее спасибо

EDIT: Я забыл сказать, что я не могу просто один файл свойств, но мне нужно иметь один для каждого типа врага. Это потому, что некоторые враги труднее убивать, чем другие.

ответ

1

Вы, вероятно, может использовать один список свойство файла.

Прежде всего, убедитесь, что вы понимаете, что такое список свойств. Список свойств определяется рекурсивно как одна из этих вещей:

  • строковым
  • логическое значение
  • целое число
  • с плавающей точкой
  • дата (и время)
  • a blob двоичных данных
  • массив списков свойств
  • словарь со строками для ключей и списки свойств для значений

Список свойств может иметь массивы и словари, вложенные в любой уровень. Вот почему вы, вероятно, можете просто использовать один список свойств. У вас может быть ваш объект верхнего уровня - это словарь с двумя ключами: «Враги» и «Уровни». Значение для ключа «Враги» - это словарь с одной записью для каждого типа врагов. Значение для ключа «Уровни» - это массив с одной записью на уровень.Вот пример:

game property list

Вы можете использовать список Свойство редактор Xcode для создания и изменения списка свойств (как я сделал для этого примера). Вы можете загрузить его с помощью +[NSDictionary dictionaryWithContentsOfFile:] или с помощью NSPropertyListSerialization, если вам нужна дополнительная проверка ошибок. Редактор plc Xcode не так уж и хорош, но даже если вам нужно написать собственный редактор уровней, список свойств по-прежнему является удобным способом хранения ваших игровых данных.

Property List Programming Guide

2

Список недвижимости являются наиболее подходящими для разработки уровня игры.
Список свойств говорит, что Levels.plist может быть преобразован в NSDictionary или NSArray легко в зависимости от того, какие данные он хранит.
Эти два метода, которые используются для преобразования PLIST в NSDictionary или NSArray

NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Levels" ofType:@"plist"]]; 

NSArray *array = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Levels" ofType:@"plist"]]; 
+0

Спасибо, но как бы я сделать игру получить данные для уровня и ввода, что в мой метод спрайтов? – akuritsu

+0

см. Plist обычно состоят из сочетания ключевых значений, поэтому, когда вы конвертируете его в словарь, просто получите значение в соответствии с вашим ключом. –

+0

предположим, что у вас есть ключ GameLevel, который содержит словарь для этого уровня, говорят «уровень»: 1, «noOfAnemy»: 12
, тогда вы получаете gameLevel dict для ключа «GameLevel» и доступ к уровню и noOfAnemy.it все зависит от того, plist содержит –

Смежные вопросы