Додавання скриптів Lua до .NET-додатків або ігор - Russian Coding 4 Fun

Грег Дункан

Ви коли-небудь чули про Lua? Цей скриптова мова використовується в багатьох іграх, наприклад, в World of Warcraft. Було б здорово інтегрувати скрипти Lua в ваші .NET-додатки, чи не так? Я теж так думаю…

Вбудовування Lua в WPF -ігри

Lua - всесвітньо відомий скриптова мова. Це полегшений мультіпарідігменний мову програмування, спроектований, в першу чергу, як скриптова мова з розширюється семантикою. У статті ми розглянемо, як інтегрувати Lua в додатки на C #, в першу чергу, в WPF-гри.

  • 1. Введення
  • 2 Введення в Lua і в LuaInterface
    • 2.1 Завантажити та пересобрать LuaInterface
  • 3 Складання проекту консольного прикладу - LuaForCSharpTest
    • 3.1 Приклад 1 - доступ до глобальних змінних
    • 3.2 Приклад 2 - доступ до функцій і таблиць, певним в Lua
    • 3.3 Приклад 3 - метод DoString
    • 3.4 Приклад 4 - виклик функції всередині таблиці
    • 3.5 Приклад 5 - виклик глобальної функції, що повертає дві величини
    • 3.6 Приклад 6 - перевірка методу RegisterFunction
    • 3.7 Приклад 7 - Виклик інших .lua-файлів, .NET-збірки і т. П.
  • 4 Вбудовування Lua в WPF-гри
    • 4.1 Налаштування Lua-скрипта
    • 4.2 Програмування WPF на C #
  • 5 Висновки

Стаття висвітлює завантаження і компіляцію останньої версії LuaInterface (керованої збірки для Lua) і потім розповідає про її використанні.

Починаємо з простого консольного застосування:

Створення прикладу консольного застосування - LuaForCSharpTest

Спочатку створимо нову консольную програму на C # і назвемо її LuaForCSharpTest. Щоб читачі більш ясно уявили собі зв'язку між основними компонентами, я створив папку LuaInterfaceStuff, в якій знаходяться два файли LuaInterface.dll і lua51.dll.

Тепер додамо посилання на LuaInterface.dll в проекті, інша DLL повинна бути автоматично скопійована в вихідну папку разом з нею

Як завжди, додамо посилання на простір імен, певне в збірці:

Далі введемо пов'язані мікропрімери один за іншим:

Переходимо до складніших тем;

Приклад 7 - Виклик інших. lua-файлів, збірки. NET і т.п. ...

Наступний приклад являє собою адаптовану версію онлайнових прикладів ( http://penlight.luaforge.net/packages/LuaInterface/). У більшості з них ви побачите, як скрипти Lua всередині C # додатків можуть взаємодіяти з бібліотеками .NET і пов'язаними структурами даних. Тепер, однак, повернемося до нашого прикладу.

Спочатку створимо файл скрипта Lua під назвою Prompting.wlua, який виглядає наступним чином:

wlua, який виглядає наступним чином:

І, нарешті, обговорюємо інтеграцію в ваш додаток або гру:

Інтеграція Lua в WPF -ігри

Вбудована скриптова мова може забезпечити вашому додатку велику гнучкість і масштабованість. Візьмемо для прикладу одну з найвідоміших мережевих ігор World of Warcraft. Вона використовує трохи більше 200 K коду Lua, але тим не менше домагається дуже високій швидкості обчислень. В даний час Lua може широко застосовуватися на платформі Microsoft .NET для додатків (таких як WinForm, WebForm, WPF і т.п.), що допускають небезпечний код. Прекрасні можливості простоти використання (немає необхідності розбиратися зі складною логікою центральних модулів), крос-платформенности (одного разу скомпільований правильний скрипт без праці переноситься на інші системи) і розширення на вимогу (в частині доповнення системи і поновлення в той же час ключову роль) дозволяють застосовувати Lua в широкому діапазоні областей розробки.

Починаючи з цього розділу, давайте розглянемо як змусити WPF-гри взаємодіяти з Lua.

Спочатку запустимо Visual Studio 2010 і створимо спільне WPF-додаток з ім'ям LuaInWPFGame на базі .NET 4.0.

Потім додамо посилання в цьому проекті на LuaInterface. У нашому випадку ми використовуємо вищезгадану готову збірку LuaInterface.dll (разом з додатковим файлом lua51.dll).

Після цього розглянемо популярну сцену переговорів в WPF-грі в якості вступного прикладу по впровадженню Lua всередину WPF-додатки.

Після цього розглянемо популярну сцену переговорів в WPF-грі в якості вступного прикладу по впровадженню Lua всередину WPF-додатки

Якщо ви вважаєте, що додавання скриптів в вашу гру або додаток необхідно, щоб вивести її на новий рівень, або вважаєте, що буде круто включити Lua в свій додаток, ця стаття забезпечить вам прекрасний старт ...

Ось кілька посилань, які можуть виявитися цікавими:

NET-додатки, чи не так?