Использование JSON для чтения данных уровня игры в iOS
Я хочу использовать JSON для хранения данных о моей игре, которые будут считаны в моем коде Objective-C.
Итак, мой файл TwinstonesBoardModel.m имеет следующие методы (которые являются первыми методами, которые будут вызваны при запуске игры, чтобы установить положение объектов на доске). Я не знаю почему, но я разбил мои инициализации объекта на несколько методов для ясности.
// sets the board positions for the stones
- (void)setToInitialStateMain
{
// clear board so each level-load is free of previous data
[super clearBoard];
// set the state of two stone objects and their positions
[super setCellState:BoardCellStateStoneOne forColumn:0 andRow:0];
[super setCellState:BoardCellStateStoneTwo forColumn:2 andRow:3];
}
- (void)setToInitialStateHorizontal
{
[super clearBoard];
[super setHBarCellState:HorizontalState forHBarCol:0 andHBarRow:1];
}
И у меня есть 3 дополнительных метода для аналогичного использования, как указано выше, просто установка позиций. То, что я хочу сделать, это обеспечить 100 уровней уровней позиций и состояний в файле JSON, чтобы их можно было читать на основе выбора уровня. Поэтому, если я выберу уровень 54, будут вызваны вышеуказанные функции и применены положения и состояния из уровня 54 файла JSON.
Мои штаты:
typedef NS_ENUM(NSUInteger, BoardCellState) {
BoardCellStateEmpty = 0,
BoardCellStateStoneOne = 1,
BoardCellStateStoneTwo = 2,
BoardCellStateTarget = 3,
HorizontalState = 4,
HorizontalStateEmpty = 5,
GhostHorizontalState = 6,
VerticalState = 7,
VerticalStateEmpty = 8,
GhostVerticalState = 9,
IntersectorState = 10
};
И я имею дело с позиционными значениями 0-4.
Как бы я поступил так? Я очень плохо знаком с чтением уровней из внешнего файла. Я мог бы обойтись жестко, закодировав все позиции в игре, но это заняло бы огромное количество времени и, конечно, было бы очень неэффективно.