Вторник, 03 Декабря 2024, 19:49

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [83]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [148]
Статьи о программах для создания игр, уроки и описания.
Софт [44]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [168]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [133]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Для какой операционной системы пишите игры?
Всего ответов: 17863
Главная » Статьи » Движки и Гейммейкеры

Программирование в Leadwerks на LUA. Введение
Оффлайн версия: NextMail.ru, PDF
Что такое LUA?

LUA это скриптовый язык программирования, который может использоваться для создания всего проекта вашей игры. Можно использовать LUA для создания своих программ, игровых скриптов в редакторе Leadwerks, и скриптов классов. В этом уроке продемонстрируется, как создать простой скрипт-программу для Leadwerks на этом языке.

  • Скрипт на LUA имеет расширение файла *.lua
  • Скрипт на LUA может быть "скомпилирован" - переведен в понятный компьютеру двоичный код. Так как LUA скриптовый ЯП, необязательно компилировать - скрипты выполняются в интерпретаторе, которые компилируют его на ходу. Скомпилированный LUA скрипт имеет расширение *.luac.

    Редактор LUA скриптов

    Leadwerks Engine SDK содержит редактор скриптов - удобную вещь для их написания и редактирования. Вы можете связать файлы .lua с редактором. Он находится в папке, куда вы установили Leadwerks, под именем "ScriptEditor.exe". Теперь можно будет открывать скрипты двойным щелчком мыши, как любой другой файл. ЗАПОМНИТЕ: вы не можете редактировать скомпилированные LUA скрипты! Если вы запускаете редактор скриптов не из Leadwerks Editor, то вы можете компилировать, запускать и отлаживать скрипты.


    • Запуск. Мы можем запустить скрипт нажатием клавиши F5 в редакторе или соответствующей кнопки. Когда мы запускаем скрипт, используется engine.exe в папке с SDK.
    • Отладка. Мы можем отладить скрипт (нужно для исправления фактических ошибок, типа "+" вместо "-"). Используется engine.debug.exe.
    • Компиляция. Можно скомпилировать скрипт (клавиша F6 иои кнопка на тулбаре). Будет показано сообщение, что скрипт превращен в *.luac файл.

    Скриптинг в редакторе уровней

    Также можно делать скрипты внутри Leadwerks Editor, но: нельзя компилировать и отлаживать скрипты. Также нельзя забывать про LUA State.

    LUA State
    Это временный раздел памяти, запоминающий изменения, сделанные пока скрипт выполняется. Например: вы стреляете и убиваете врага. Когда вы запускаете игру в Editor из редактора скриптов, то LUA State не очистится, и при следующем запуске скрипта враг все равно будет мертв.
    Если мы используем кнопку Game Script или сочетание Ctrl+G, мы запускаем те же скрипты, но при конце игры память очищается - при следующем запуске враг будет жив. Можно также очистить память загрузкой или обновлением сцены.

    Создание и настройка вашего первого проекта
    Для начала создадим новую папку и дадим ей имя нашего проекта. К примеру, Project 1. Неважно, где вы ее создаете (однако важно, чтобы в пути не было кириллицы). Скопируйте следующие файлы из папки с SDK в нашу папку:


    • Папка Scripts. Очень важно скопировать эти скрипты, потому что они содержат основные скрипты для доступа к ядру движка Leadwerks.
    • engine.exe. Самый важный файл. Это и есть обработчик ядра движка для скриптинга в LUA. Ни в коем случае не забывайте копировать его!
    • engine.debug.exe. Это версия ядра, используемая в отладчике. В принципе, если вы не будете отлаживать скрипт, моэно не копировать. Но лучше все-таки сделать это. Если копируете, то вместе с engine.debug.dll.
    • Shaders.pak. Архив с шейдерами. Без него ядро не запустится. Обязательно копируйте его! P.S. Архивчик легко открывается WinRAR'ом crazy
    • newton.dll. Физический движок Newton. No comments.
    • Engine.dll. Вот оно, само ядро движка. Используется engine.exe'ом. При использовании C++/C# вы должны подключить её к проекту.
    • JointLibrary.dll. Библиотека для просчета костей в физике.

    Скопируйте все эти файлы. Вот, что получилось:

    Ваш первый скрипт
    Приступим к созданию первого скрипта. Примечание: не копируйте команды отсюда, а вводите сами. Так вы лучше поймете движок. Также будет хорошо, если вы попробуете менять параметры и значения, передаваемые командам. Если что-то не получается, пишите в эту тему.

    Для начала создадим новый .lua файл (создайте просто текстовый документ и смените расширение на .lua). Назовите его start.lua (этот скрипт запускается первым, если вы сразу запускаете engine.exe, а не из редактора скриптов).

    Комментарии: на код программы они не влияют, они нужны для того, чтобы код написанный вами был понятен другому человеку. Либо вам, если вы вернетесь к скрипту через месяц. Иначе, вы ничего не поймете и ваше лицо будет таким: blink . Есть два типа комментариев: однострочный и многострочный.
    Однострочный комментарий начинается с символов "--". Это делается так:

    Quote (LUA)
    --Комментарий
    А это код скрипта
    --Это тоже комментарий

    Многострочные комментарии начинаются символов "--[[" и заканчиваются "]]--".
    Quote (LUA)

    --[[ Это комментарий
    Это тоже комментарий ]]--

    А это нет

    Давайте напишем первый код:
    Quote (LUA)
    -- Зарегистрируем абстрактный путь
    RegisterAbstractPath("")

    Этот путь указывает на то, где лежат данные проекта (модели, текстуры). "" обозначает, что будет использоваться папка, откуда запускается программа. Иначе надо было бы вводить всякие ненадежные пути типа "C:\Models\".

    Давайте создадим графическое окно.

    Quote (LUA)
    Graphics(1024, 768)

    Это команда в нашем случае берет 2 параметра в скобках: высота и ширина окна.

    Дальше, давайте создадим пустой пока мир:

    Quote (LUA)
    fw = CreateWorld()

    Все наши загруженные модели, созданные объекты, etc попадут в этот мир. Он хранится в переменной fw.
    Quote (LUA)
    -- Создадим камеру
    camera = CreateCamera()
    -- Переместим нашу камеру в позицию 0, 0, -5 (оси xyz) - немного назад.
    camera:SetPosition(Vec3(0, -5, 0);
    --кубик. CreateCube() создаст его.
    cube = CreateCube()

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

    Quote (LUA)
    -- Пока приложению не дана команда закрыться, надо рендерить.
    while AppTerminate() == 0 do
    fw:Update()
    fw:Render()
    Flip(0)

    end

    while..do...end обозначает "Пока условие верное, выполнять тело цикла".
    Команда Update() выполняет обновление физики. Render() отвечает за рендеринг. Flip(0) нужен, чтобы перевернуть местами буферы, , который отображен на экране, и который мы только что отобразили в памяти.
    end - конец цикла и выполнения программы (дальше нет команд, нечего выполнять).

    Готовый скрипт: Nextmail.ru
    Скрин скрипта:


    Скрин того, что получилось:

    Прямо ГТА5, не так ли? crazy

    Источник: КЛИК»
  • Категория: Движки и Гейммейкеры | Добавил: SlavyanOOs (26 Ноября 2010) | Автор: Вячеслав Ждановский
    Просмотров: 19915 | Рейтинг: 5.0/14 |
    Теги: Leadwerks, скриптинг, основы, Script Editor, LUA
    Дополнительные опции:
    Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

    Игровые объявления и предложения:
    Если вас заинтересовал материал «Программирование в Leadwerks на LUA. Введение», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Поиск по сайту
    10 случ. движков
  • M.U.G.E.N
  • PrBoom-plus
  • Core
  • Alice
  • LinCity
  • ReMooD
  • Intersect Engine
  • CYOA Factory
  • Glint 3d
  • Axiom Engine
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг