Script Game

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск

Объект ScriptGame служит для встраивания игр, написанных на различных скриптовых языках, в редактор

Свойства

  • скрипт - Скрипт игровой механники данного объекта (Type Script, Java Script, LUA ...)
  • config - конфиг для игровой механики. Чтобы добавить конфиг нужно нажать правой кнопкой на области свойств и выбрать "config". После чего загрузить заранее подготовленный конфиг для игровой механики. Как подготовить конфиг см. тут

Инициализация

При инициализации создается объект в глобальном пространстве имен с именем <Имя игровой механники (указанное в поле "скрипт")>_<Идентификатор объекта во вьюере>. Затем вызывается функция modules_init в которую передается конфигурацонный файл объекта сдедующей структуры:

{

  "id" : 2              //Идентификатор объекта
  "width" : 1024,       //Ширина объекта
  "height" : 768,       //Высота объекта
  "resourcesInfo" : {   //Ресурсы, используемые механникой
     "images" : [       //Изображения
        {
           "w" : 183,   //Высота 
           "h" : 183,   //Ширина
           "id" : 68,   //Идентификатор ресурса
           "px" : 92,   //Пивот Х
           "py" : 92    //Пивот Y
        }
     ]
  },
  "config" : {             //Основной конфигурационный файл указанный в поле "config"
     "defaultIcoID" : 68,  
     "levels" : [
        {
           "config" : {    //Конфигурационный файл соответствующего уровня
              "level" : {
                 "cols" : 5,
                 "field" : "0,1,4,5,2"
                 "id" : 1,
                 "moveSnd" : 70,
                 "picture" : 69,
                 "rows" : 5
              },
              "resources" : {
                 "images" : "69",
                 "sounds" : "70"
              }
           },
           "dir" : "levels/1/",
           "id" : 73
        }
     ],
     "name" : "levels config",
     "nameID" : 20,
     "resources" : {
        "images" : "68",
        "sounds" : "",
        "texts" : "20"
     }
  }

}

Обмен событиями

Для оптимизации скорости обмена между вьювером и скриптом в качестве формата сообщения выбран массив вещественных чисел следующего формата:

*число событий
*тип события
*размер данных события
*данные события

...

*тип события
*размер данных события
*данные события

Данный массив передается параметром в функцию update_handler в каждом кадре (в котором перечислены интервал времени,тачи,системные сообщения), затем скрипт выполняет логику кадра и возвращает аналогичной структуры массив в котором указаны события что и где рисовать.

События из вьювера в скрипт

  1. DT - Время, после последнего кадра
    1. размер - 1
    2. dt - время, после последнего кадра
  2. Mouse/Touch down - Нажали левую кнопку мыши/тач по экрану
    1. размер - 2
    2. x - позиция тача по оси X
    3. y - позиция тача по оси Y
  3. Mouse/Touch move - движение нажатой мыши/тача по экрану
    1. размер - 2
    2. x - позиция тача по оси X
    3. y - позиция тача по оси Y
  4. Mouse/Touch up - отпускание левой кнопки мыши/тача
    1. размер - 2
    2. x - позиция тача по оси X
    3. y - позиция тача по оси Y
  5. Mouse over - мышь над объектом
    1. размер - 2
    2. x - позиция мыши по оси X
    3. y - позиция мыши по оси Y
  6. Mouse whell down - скрол мыши вниз
    1. размер - 2
    2. x - позиция мыши по оси X
    3. y - позиция мыши по оси Y
  7. Mouse whell up - скрол мыши вверх
    1. размер - 2
    2. x - позиция мыши по оси X
    3. y - позиция мыши по оси Y
  8. Multi touch down - мультитач нажатие
    1. размер - X
    2. touches - число тачей
    3. id - идентификатор тача
    4. pressed - флаг нажатости
    5. x - позиция тача по оси X
    6. y - позиция тача по оси Y
    7. следующий тач
  9. Multi touch move - мультитач движение
    1. размер - X
    2. touches - число тачей
    3. id - идентификатор тача
    4. pressed - флаг нажатости
    5. x - позиция тача по оси X
    6. y - позиция тача по оси Y
    7. следующий тач
  10. Multi touch up - мультитач отпускание
    1. размер - X
    2. touches - число тачей
    3. id - идентификатор тача
    4. pressed - флаг нажатости
    5. x - позиция тача по оси X
    6. y - позиция тача по оси Y
    7. следующий тач

События из скрипта во вьювер