Marmalade SDK — мгновенный запуск и работа. Основной цикл игры.

Итак, вы скачали и установили Marmalade SDK, запустили быструю проверку справочных файлов и подумали: «Хм, сколько тут всего… С чего же начать?»

Абсолютно каждый, приступая к изучению языка или технологии, испытывал этот дискомфорт — ощущение себя полным нубом новичком-первооткрывателем. Всё, что вам необходимо сделать, чтобы почувствовать себя увереннее — запустить приложение и получить сообщение «hello world». Когда вы окончательно убедитесь в том, что Marmalade SDK работает, процесс обновления кода и компиляции станет комфортнее.
Наше руководство поможет вам сделать первые шаги в неизведанном мире Marmalade SDK. Но если вам просто нужен пример исходного кода, то вы можете скачать его здесь: http://www.drmop.com/wp-content/uploads/2011/09/BasicMKB.zip

Кстати, если у вас ещё нет Marmalade — перейдите по ссылке http://www.madewithmarmalade.com/buy скачайте копию бесплатной пробной версии и установите его.

Чтобы вы не запутались в дебрях этого SDK, предлагаем начать с базовой информации о технологии.

Проектные файлы (Project files — MKB’s)

Начнем с того, Marmalade использует концепцию проектных файлов для организации исходных файлов, файлов данных и параметров развертывания. MKB-файл — это в основном текстовый файл, который при открыли создаст Visual Studio или XCode проект, содержащий исходные файлы и т.д.

MKB-файл разбивается на несколько разделов, у каждого из которых есть имя заголовка, а затем ставятся фигурные скобки, содержащие разделы данных. Вот пример из раздела:

subprojects
{
    iw2d
}

На данный момент вам понадобятся следующие основные разделы MKB:

options – Параметры перехода к системе сборки.

includepath – Сообщает Marmalade, где искать файлы заголовков.

subprojects – В этом разделе Marmalade рассказывается, какие части SDK вы собираетесь использовать. Здесь вы будете прописывать названия частей SDK, к которым хотите получить доступ из кода, например, API 2D вызывается Iw2D.

files – Определяет, какой из редактируемых файлов вы хотите включить в сгенерированный проект. Например: исходные файлы, XML-файлы, файлы конфигурации и т. д.

аssets – Сообщает, какой контент вы хотели бы внедрить при разработке приложения или игры. Контент включает в себя такие файлы, как растровые изображения, звуковые файлы, сетки, шрифты, файлы данных и т.д. Вы можете разделить контент на группы, если вам нужен определенный набор для конкретной платформы.

deployments – Этот раздел позволяет определить некоторые параметры в расчете на целевую платформу. Мы не будем рассматривать его в этом руководстве, но о нем стоит упомянуть.

Итак, мы разобрались с азами MKB-файлов. Ниже приведены основы, которые понадобятся для начала работы:

#!/usr/bin/env mkb
options
{
}

subprojects
{
    iw2d
}

includepath
{
    ./source
}

files
{
    [Source]
    (source)
    Main.cpp
}

assets
{
}

Чтобы создать проект из этого файла вам необходимо:

  • Создать папку на жестком диске, назвать её BasicMKB.
  • Создать текстовый файл с именем BasicMKB.mkb и добавить в него эти строки.
  • Создать вложенные папки, называемые исходниками.
  • Добавить файл main.cpp в исходную папку.
  • Дважды кликнуть по файлу BasicMKB.mkb, чтобы Marmalade SDK сгенерировал ваш Visual Studio или XCode проект.

Примечания:

  • Marmalade будет генерировать папку данных, содержащую два .icf файла и папку сборки, но сейчас вам не стоит касаться этого.
  • Вы не должны добавлять дополнительные исходные файлы с помощью XCode или Visual Studio. Вместо этого отредактируйте MKB-файл, добавьте исходные файлы, затем снова запустите MKB-файл повторной генерации проекта.

Наконец-то, мы завершили обзор основ создания проекта в Marmalade SDK и теперь нам нужно освоить инструменты, которые позволят скомпилировать и запустить его. Очень простой цикл игры В этом разделе мы рассмотрим создание игрового цикла, проверяющего выход пользователя из приложения и очищающего экран. Используйте ещё раз предыдущий пример. Отредактируйте файл Main.cpp, который вы создали, и добавьте следующий код:

// Marmalade headers
#include "s3e.h"
#include "Iw2D.h"
#include "IwGx.h"

int main()
{
    // Initialise Marmalade graphics system and Iw2D module
    IwGxInit();
    Iw2DInit();

    // Set the default background clear colour
    IwGxSetColClear(0x40, 0x40, 0x40, 0);

    // Main Game Loop
    while (!s3eDeviceCheckQuitRequest())
    {
        // Update keyboard system
        s3eKeyboardUpdate();
        if (s3eKeyboardGetState(s3eKeyAbsBSK) & S3E_KEY_STATE_DOWN)    // Back key is used to exit on some platforms
        break;

        // Update pointer system
        s3ePointerUpdate();

        // Clear the screen
        IwGxClear(IW_GX_COLOUR_BUFFER_F | IW_GX_DEPTH_BUFFER_F);

        // Update the game

        // Render the games view

        // Show the surface
        Iw2DSurfaceShow();

        // Yield to the operating system
        s3eDeviceYield(0);
    }

    // Shut down Marmalade graphics system and the Iw2D module
    Iw2DTerminate();
    IwGxTerminate();

    return 0;
}

Вы можете скачать ZIP-архив, содержащий проект MKB и исходный код здесь: http://www.drmop.com/wp-content/uploads/2011/09/BasicMKB.zip

Если у вас получилось создать и запустить приведённый выше пример — вы увидите серый экран. Да, я знаю, что он выглядит немного скучно, но очень скоро мы рассмотрим рисование спрайтов и другие интересные темы.

Поделиться в соц. сетях

вернуться на главную блога