Настройка окружения

Внимание! BusEngine (busengine) - является зарезервированным частью или целым словом - не называйте свои классы (кроме, если пишите этот класс специально для BusEngine или хотите заменить оригинальный код JavaScript на свой), папки, файлы, языковые переменные и т.д. этим словом, чтобы избежать проблем и неясностей в дальнейшей работе. Какие именно проблемы могут быть? Например, назвали свою переменную этим словом и ожидаете от неё свой результат, а на деле BusEngine внёс свои данные. Или назвали файл, а позже он удалился в определённый момент и т.д.

После просмотра урока, за основу возьмите плагин в папке "BusEngine/Code/Plugin" измените везде Plugin на своё название, пропишите путь к своему плагину в файле настройки проекта "*.busproject" или "busengine.busengine" и можете приступать к творению!

Пример файла Launcher.busproject

В текущей версии BusEngine доступна возможность настраивать настройки проекта в файле "*.busproject".

  1. {
  2.   // со стороны игры
  3.   "console_commands": {
  4.     //"google_api_key": "",               // Секретный ключ API приложения Google в BusEngine.Browser
  5.     //"google_default_client_id": "",     // ID пользователя API приложения Google в BusEngine.Browser
  6.     //"google_default_client_secret": "", // Секретный ключ пользователя API приложения Google в BusEngine.Browser
  7.     //"r_DisplayInfo": "0",               // 0 = консоль отключена
  8.     //"r_DisplayInfo": "1",               // 1 = включение консоли и вывод информации уровня 1
  9.     //"r_DisplayInfo": "2",               // 2 = включение консоли и вывод информации уровня 2
  10.     //"r_FullScreen": "-3",               // -3 = разрешить изменять размеры окна с кнопками и рамкой
  11.     //"r_FullScreen": "-2",               // -2 = разрешить изменять размеры окна без кнопок и рамкой
  12.     //"r_FullScreen": "-1",               // -1 = окно без кнопок и рамки - изменение размера окна нужно делать вручную
  13.     //"r_FullScreen": "0",                // 0 = запретить изменять размеры окна с кнопками и рамкой
  14.     //"r_FullScreen": "1",                // 1 = сделать на весь экран окно без кнопок и рамки
  15.     //"r_FullScreen": "2",                // 2 = сделать на весь экран окно без кнопок с рамкой
  16.     "r_Width": "1280",                    // Ширина окна приложения
  17.     "r_Height": "720",                    // Высота окна приложения
  18.     "sys_MemoryClearAuto": "1",            // Статус автоматического освобождения оперативной памяти (принудительный вызов System.GC.Collect)
  19.     "sys_MemoryClearTime": "5"            // Установка промежутка времени для освобождения оперативной памяти в секундах
  20.   },
  21.   // со стороны редактора
  22.   "console_variables": [],
  23.   "info": {
  24.     "name": "BusEngine Launcher",
  25.     "version": "0.4.0.0",
  26.     "icon": "[data]/Icons/BusEngine.ico",
  27.     "type": "",
  28.     "guid": "ddc2049b-3a86-425b-9713-ee1babec5365"
  29.   },
  30.   "content": {
  31.     "bin": "Bin",
  32.     "code": "Code",
  33.     "data": "Data",
  34.     "localization": "Localization",
  35.     "log": "Log",
  36.     "tools": "Tools",
  37.     /* "libs": [
  38.       {
  39.         "name": "BusEngine",
  40.         "shared": {
  41.           "Any": "",
  42.           "Android": "",
  43.           "Win": "",
  44.           "Win_x64": "",
  45.           "Win_x86": ""
  46.         }
  47.       }
  48.     ] */
  49.   },
  50.   "require": {
  51.     "engine": "0.4.0.0",
  52.     "plugins": [
  53.       /* {
  54.         "guid": "",
  55.         "type": "EType::Managed",
  56.         "path": "Bin/Android/Game.dll",
  57.         "platforms": {
  58.           "Android": "Android"
  59.         }
  60.       }, */
  61.       {
  62.         "guid": "",
  63.         "type": "EType::Managed",
  64.         "path": "Bin/Win/Game.dll",
  65.         "platforms": {
  66.           "Win_x86": "Windows"
  67.         }
  68.       },
  69.       /* {
  70.         "guid": "",
  71.         "type": "EType::Managed",
  72.         "path": "Bin/Win_x86/Game.dll",
  73.         "platforms": {
  74.           "Win_x86": "Windows"
  75.         }
  76.       },
  77.       {
  78.         "guid": "",
  79.         "type": "EType::Managed",
  80.         "path": "Bin/Win_x64/Game.dll",
  81.         "platforms": {
  82.           "Win_x64": "Windows"
  83.         }
  84.       }, */
  85.       {
  86.         "guid": "",
  87.         "type": "EType::Managed",
  88.         "path": "Plugin",
  89.         "platforms": {
  90.           "Any": "Any"
  91.         }
  92.       }
  93.     ]
  94.   }
  95. }

Пример файла Program.cs

В коде отражены все методы своего плагина с названием MyPlugin.

  1. /** API BusEngine.Game - пользовательский код */
  2. namespace BusEngine.Game {
  3.     /** API BusEngine.Plugin */
  4.     public class MyPlugin : BusEngine.Plugin {
  5.         // при запуске BusEngine до создания формы
  6.         public override void Initialize() {
  7.             BusEngine.Log.Info("MyPlugin Initialize");
  8.         }
  9.         // после загрузки определённого плагина
  10.         public override void Initialize(string plugin) {
  11.             BusEngine.Log.Info("MyPlugin Initialize: {0}", plugin);
  12.         }
  13.         // после загрузки определённого плагина и метода
  14.         public override void Initialize(string plugin, string state) {
  15.             BusEngine.Log.Info("MyPlugin Initialize: {0}, {1}", plugin, state);
  16.         }
  17.         // при запуске BusEngine после создания формы Canvas
  18.         public override void InitializeCanvas() {
  19.             BusEngine.Log.Info("MyPlugin InitializeCanvas");
  20.         }
  21.         // перед закрытием BusEngine
  22.         public override void Shutdown() {
  23.             BusEngine.Log.Info("MyPlugin Shutdown");
  24.         }
  25.         // перед загрузкой игрового уровня
  26.         public override void OnLevelLoading(string level) {
  27.             BusEngine.Log.Info("MyPlugin OnLevelLoading: {0}", level);
  28.         }
  29.         // после загрузки игрового уровня
  30.         public override void OnLevelLoaded(string level) {
  31.             BusEngine.Log.Info("MyPlugin OnLevelLoaded: {0}", level);
  32.         }
  33.         // когда игрок может управлять главным героем - время игры идёт
  34.         public override void OnGameStart() {
  35.             BusEngine.Log.Info("MyPlugin OnGameStart");
  36.         }
  37.         // когда время остановлено - пауза или закрытие уровня
  38.         public override void OnGameStop() {
  39.             BusEngine.Log.Info("MyPlugin OnGameStop");
  40.         }
  41.         // вызывается при отрисовки каждого кадра
  42.         public override void OnGameUpdate() {
  43.             BusEngine.Log.Info("MyPlugin OnGameUpdate");
  44.         }
  45.         // когда игрок начинает подключаться к серверу
  46.         public override void OnClientConnectionReceived(int channelId) {
  47.             BusEngine.Log.Info("MyPlugin OnClientConnectionReceived: {0}", channelId);
  48.         }
  49.         // когда игрок подключился к серверу
  50.         public override void OnClientReadyForGameplay(int channelId) {
  51.             BusEngine.Log.Info("MyPlugin OnClientReadyForGameplay: {0}", channelId);
  52.         }
  53.         // когда игрока выкинуло из сервера - обрыв связи с сервером или он отключился сам
  54.         public override void OnClientDisconnected(int channelId) {
  55.             BusEngine.Log.Info("MyPlugin OnClientDisconnected: {0}", channelId);
  56.         }
  57.     }
  58.     /** API BusEngine.Plugin */
  59. }
  60. /** API BusEngine.Game - пользовательский код */
Наверх