Использование 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.

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

Ответы на вопрос(0)

Ваш ответ на вопрос