Marmalade SDKСтатьи

Tutorial 2. Marmalade SDK главный игровой цикл

Автор:

Tutorial 2. Marmalade SDK главный игровой цикл

Этот туториал — часть цикла туториалов Marmalade SDK .


Android_Icon_170x170_0 | Tutorial 2. Marmalade SDK  главный игровой цикл

Ок, вы скачали и установили Marmalade SDK, быстро просмотрели файлы помощи и подумали: «Хмм, что-то многовато, с чего же начать?» Когда мы берёмся за что-то новое мы чувствуем себя полными и абсолютными дубами. Всё, что вы хотите сделать, это запустить приложение «привет мир», так, чтобы у вас было хоть какое-то ощущение достижения и удобства в процессе обновления кода, его компиляции и чтобы вы видели, что он на самом деле работает. Этот туториал поможет вам осуществить как раз то, что нужно. С другой стороны, если вам нужен только исходный код, вы можете скачать его здесь.

Кстати, если вы ещё этого не сделали, перейдите на  url=http://www.madewithmarmalade.com/buy и скачайте бесплатную триал версию Marmalade SDK и установите её.
Мы начнём с некоторых основ Marmalade, так что вы не «заблудитесь» во время обучения.

Project files (MKB’s)


Начнём с того, что Marmalade использует концепцию файлов проекта, чтобы организовать ваши исходные файлы, файлы данных и настройки развёртывания (размещения??). MKB файл — это в основном текстовый файл, который при открытии его создаст Visual Studio или XСode проект, содержащий ваши исходные файлы и т. д.
MKB файл разделён на несколько секций, каждая из которых имеет имя заголовка, за которым следуют фигурные скобки, содержащие в себе данные секции. Вот пример секции:
subprojects
{
    iw2d
}


Пока вам необходимо иметь дело только со следующими основными секциями MKB:

•  options — Опции для перехода в систему построения
•  includepath – Указывает Marmalade, где искать ваши заголовочные файлы
•  subprojects – Эта секция указывает Marmalade, какие части SDK вы хотите использовать. Сюда вы вставляете названия частей SDK, которые вы хотите использовать из вашего кода, например, 2D API называется Iw2D
•  files – Эта секция указывает Marmalade, какие редактируемые файлы вы бы хотели внести в создаваемый проект, такие как исходные файлы, XML файлы, файлы конфигурации и т. д.
•  assets – Эта секция указывает Marmalade, какие средства вы хотели бы внести, когда размещаете ваши приложение или игру, средства включают в себя такие файлы как точечные рисунки, звуковые файлы, сетки, шрифты, файлы данных и т. д. Вы можете определить средства в группы, если вам нужен особый набор средств конкретных платформ
•  deployments – Эта секция позволяет вам определить некоторые параметры посредством базиса  целевой платформы. Мы не будем рассматривать эту секцию в руководстве, но упомянуть её нужно.     


Ок, сейчас мы объяснили кое-что о файлах MKB, это самое основное для начала:

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

subprojects
{
    iw2d
}

includepath
{
    ./source
}

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

assets
{
}

Чтобы создать проект из этого файла вам необходимо:
•  Создать папку на жёстком диске, назовём её Basic MKB
•  Создать текстовый файл с названием BasicMKB.mkb и добавить в него текст (см.выше)
•  Создать вложенную папку с названием source
•  Добавить файл Main.cpp в папку source
•  Дважды кликнуть  по файлу BasicMKB.mkb, чтобы Marmelade 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/index.php/2011/09/16/marmalade-sdk-up-and-ru… ain-game-loop

11 июня 2012

Комментарии [6]