Ask Learn
Preview
Please sign in to use this experience.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Вы когда-нибудь слышали о Lua? Этот скриптовый язык используется во многих играх, например, в World of Warcraft. Было бы здорово интегрировать скрипты Lua в ваши .NET-приложения, не правда ли? Я тоже так думаю…
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и т.п. …
Следующий пример представляет собой адаптированную версию онлайновых примеров (https://penlight.luaforge.net/packages/LuaInterface/). В большинстве из них вы увидите, как скрипты Lua внутри C# приложений могут взаимодействовать с библиотеками .NET и связанными структурами данных. Теперь, однако, вернемся к нашему примеру.
Сначала создадим файл скрипта Lua под названием Prompting.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-приложения.
Если вы полагаете, что добавление скриптов в вашу игру или приложение необходимо, чтобы вывести ее на новый уровень, или считаете, что будет круто включить Lua в своё приложение, эта статья обеспечит вам прекрасный старт…
Вот несколько ссылок, которые могут оказаться интересными:
Please sign in to use this experience.
Sign in