Настройка окружения
Внимание! BusEngine (busengine) - является зарезервированным частью или целым словом - не называйте свои классы (кроме, если пишите этот класс специально для BusEngine или хотите заменить оригинальный код JavaScript на свой), папки, файлы, языковые переменные и т.д. этим словом, чтобы избежать проблем и неясностей в дальнейшей работе. Какие именно проблемы могут быть? Например, назвали свою переменную этим словом и ожидаете от неё свой результат, а на деле BusEngine внёс свои данные. Или назвали файл, а позже он удалился в определённый момент и т.д.
После просмотра урока, за основу возьмите плагин в папке "BusEngine/Code/Plugin" измените везде Plugin на своё название, пропишите путь к своему плагину в файле настройки проекта "*.busproject" или "busengine.busengine" и можете приступать к творению!
Пример файла Launcher.busproject
В текущей версии BusEngine доступна возможность настраивать настройки проекта в файле "*.busproject".
- {
- // со стороны игры
- "console_commands": {
- //"google_api_key": "", // Секретный ключ API приложения Google в BusEngine.Browser
- //"google_default_client_id": "", // ID пользователя API приложения Google в BusEngine.Browser
- //"google_default_client_secret": "", // Секретный ключ пользователя API приложения Google в BusEngine.Browser
- //"r_DisplayInfo": "0", // 0 = консоль отключена
- //"r_DisplayInfo": "1", // 1 = включение консоли и вывод информации уровня 1
- //"r_DisplayInfo": "2", // 2 = включение консоли и вывод информации уровня 2
- //"r_FullScreen": "-3", // -3 = разрешить изменять размеры окна с кнопками и рамкой
- //"r_FullScreen": "-2", // -2 = разрешить изменять размеры окна без кнопок и рамкой
- //"r_FullScreen": "-1", // -1 = окно без кнопок и рамки - изменение размера окна нужно делать вручную
- //"r_FullScreen": "0", // 0 = запретить изменять размеры окна с кнопками и рамкой
- //"r_FullScreen": "1", // 1 = сделать на весь экран окно без кнопок и рамки
- //"r_FullScreen": "2", // 2 = сделать на весь экран окно без кнопок с рамкой
- "r_Width": "1280", // Ширина окна приложения
- "r_Height": "720", // Высота окна приложения
- "sys_MemoryClearAuto": "1", // Статус автоматического освобождения оперативной памяти (принудительный вызов System.GC.Collect)
- "sys_MemoryClearTime": "5" // Установка промежутка времени для освобождения оперативной памяти в секундах
- },
- // со стороны редактора
- "console_variables": [],
- "info": {
- "name": "BusEngine Launcher",
- "version": "0.4.0.0",
- "icon": "[data]/Icons/BusEngine.ico",
- "type": "",
- "guid": "ddc2049b-3a86-425b-9713-ee1babec5365"
- },
- "content": {
- "bin": "Bin",
- "code": "Code",
- "data": "Data",
- "localization": "Localization",
- "log": "Log",
- "tools": "Tools",
- /* "libs": [
- {
- "name": "BusEngine",
- "shared": {
- "Any": "",
- "Android": "",
- "Win": "",
- "Win_x64": "",
- "Win_x86": ""
- }
- }
- ] */
- },
- "require": {
- "engine": "0.4.0.0",
- "plugins": [
- /* {
- "guid": "",
- "type": "EType::Managed",
- "path": "Bin/Android/Game.dll",
- "platforms": {
- "Android": "Android"
- }
- }, */
- {
- "guid": "",
- "type": "EType::Managed",
- "path": "Bin/Win/Game.dll",
- "platforms": {
- "Win_x86": "Windows"
- }
- },
- /* {
- "guid": "",
- "type": "EType::Managed",
- "path": "Bin/Win_x86/Game.dll",
- "platforms": {
- "Win_x86": "Windows"
- }
- },
- {
- "guid": "",
- "type": "EType::Managed",
- "path": "Bin/Win_x64/Game.dll",
- "platforms": {
- "Win_x64": "Windows"
- }
- }, */
- {
- "guid": "",
- "type": "EType::Managed",
- "path": "Plugin",
- "platforms": {
- "Any": "Any"
- }
- }
- ]
- }
- }
Пример файла Program.cs
В коде отражены все методы своего плагина с названием MyPlugin.
- /** API BusEngine.Game - пользовательский код */
- namespace BusEngine.Game {
- /** API BusEngine.Plugin */
- public class MyPlugin : BusEngine.Plugin {
- // при запуске BusEngine до создания формы
- public override void Initialize() {
- BusEngine.Log.Info("MyPlugin Initialize");
- }
- // после загрузки определённого плагина
- public override void Initialize(string plugin) {
- BusEngine.Log.Info("MyPlugin Initialize: {0}", plugin);
- }
- // после загрузки определённого плагина и метода
- public override void Initialize(string plugin, string state) {
- BusEngine.Log.Info("MyPlugin Initialize: {0}, {1}", plugin, state);
- }
- // при запуске BusEngine после создания формы Canvas
- public override void InitializeCanvas() {
- BusEngine.Log.Info("MyPlugin InitializeCanvas");
- }
- // перед закрытием BusEngine
- public override void Shutdown() {
- BusEngine.Log.Info("MyPlugin Shutdown");
- }
- // перед загрузкой игрового уровня
- public override void OnLevelLoading(string level) {
- BusEngine.Log.Info("MyPlugin OnLevelLoading: {0}", level);
- }
- // после загрузки игрового уровня
- public override void OnLevelLoaded(string level) {
- BusEngine.Log.Info("MyPlugin OnLevelLoaded: {0}", level);
- }
- // когда игрок может управлять главным героем - время игры идёт
- public override void OnGameStart() {
- BusEngine.Log.Info("MyPlugin OnGameStart");
- }
- // когда время остановлено - пауза или закрытие уровня
- public override void OnGameStop() {
- BusEngine.Log.Info("MyPlugin OnGameStop");
- }
- // вызывается при отрисовки каждого кадра
- public override void OnGameUpdate() {
- BusEngine.Log.Info("MyPlugin OnGameUpdate");
- }
- // когда игрок начинает подключаться к серверу
- public override void OnClientConnectionReceived(int channelId) {
- BusEngine.Log.Info("MyPlugin OnClientConnectionReceived: {0}", channelId);
- }
- // когда игрок подключился к серверу
- public override void OnClientReadyForGameplay(int channelId) {
- BusEngine.Log.Info("MyPlugin OnClientReadyForGameplay: {0}", channelId);
- }
- // когда игрока выкинуло из сервера - обрыв связи с сервером или он отключился сам
- public override void OnClientDisconnected(int channelId) {
- BusEngine.Log.Info("MyPlugin OnClientDisconnected: {0}", channelId);
- }
- }
- /** API BusEngine.Plugin */
- }
- /** API BusEngine.Game - пользовательский код */