@@ -1,4 +1,10 @@ | |||
Рисователь / Примеры | |||
Рисователь / Смотри | |||
x /пуск|run.js | |||
/пуск|run.череда | |||
https://git.opengamestudio.org/PuCOBATEJlb/nPuMEPbl | |||
x /🎬.js | |||
/🎬.череда | |||
/📦 | |||
x /🔄.js | |||
/🔄.череда | |||
x /🧱.js |
@@ -1,5 +0,0 @@ | |||
ПриветИзШаблона = мир => | |||
{ | |||
console.log("Привет из шаблона!"); | |||
console.log("Hello from the template!"); | |||
}; |
@@ -1,2 +0,0 @@ | |||
пуск | |||
привет из шаблона |
@@ -0,0 +1,85 @@ | |||
// // // // | |||
СкрытьКрутилку = мир => | |||
{ | |||
document.getElementById("крутилка").style.display = "none"; | |||
}; | |||
// // // // | |||
ОкончитьЗагрузкуПриложения = мир => | |||
{ | |||
мир.уведомить("надо окончить загрузку приложения"); | |||
}; | |||
// // // // | |||
ПроверитьНаличиеОбновленийПриложения = мир => | |||
{ | |||
// Эта функция находится вне "/🔄.js", т.к. "/🔄.js" отключаем, | |||
// отчего этой функции просто не будет в пространстве имён. | |||
var событие = "надо обновить приложение при наличии обновлений"; | |||
if (событие in мир.события) | |||
{ | |||
мир.уведомить(событие); | |||
} | |||
else | |||
{ | |||
мир.уведомить("обновления приложения отсутствуют"); | |||
} | |||
}; | |||
// // // // | |||
СоздатьПримерСцены = мир => | |||
{ | |||
мир.сцена.background = new THREE.Color(0xFFFFFF); | |||
var коэффициент = 2; | |||
var расстояние = 14; | |||
мир.камера.position.y = расстояние * коэффициент; | |||
мир.камера.position.z = расстояние; | |||
мир.камера.lookAt(new THREE.Vector3(0, 0, 0)); | |||
мир.свет = new THREE.DirectionalLight(0xFFFFFF, 1); | |||
мир.свет.position.set(-0.5, 1, 0.5).normalize(); | |||
мир.сцена.add(мир.свет); | |||
мир.сцена.add(мир.фишка); | |||
}; | |||
// // // // | |||
ЗагрузитьРесурсыСцены = мир => | |||
{ | |||
загрузитьМодельЭтогоМодуля( | |||
мир, | |||
"/фишка.gltf", | |||
function(модель) { | |||
мир.фишка = модель; | |||
мир.уведомить("загрузили ресурсы сцены"); | |||
} | |||
); | |||
}; | |||
// // // // | |||
ВывестиНажатиеВРисователе = мир => | |||
{ | |||
console.debug("Нажатие в рисователе:", мир.позицияНажатияВРисователе); | |||
}; |
@@ -0,0 +1,15 @@ | |||
#пуск | |||
# настроить рисователя по умолчанию | |||
# загрузить ресурсы сцены | |||
#нажатие в рисователе | |||
# вывести нажатие в рисователе | |||
#загрузили ресурсы сцены | |||
# создать пример сцены | |||
пуск | |||
проверить наличие обновлений приложения | |||
обновления приложения отсутствуют | |||
загрузить библиотеки приложения | |||
загрузили библиотеки приложения | |||
окончить загрузку приложения | |||
скрыть крутилку |
@@ -0,0 +1,2 @@ | |||
https://git.opengamestudio.org/PuCOBATEJlb/PuCOBATEJlb/raw/branch/master/0000 | |||
https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000 |
@@ -0,0 +1,120 @@ | |||
// // // // | |||
ПерезагрузитьПриложениеПослеОбновления = мир => | |||
{ | |||
window.location.reload(false); | |||
}; | |||
// // // // | |||
УдалитьМодулиПриложенияПередОбновлением = мир => | |||
{ | |||
var список = мир.списокМодулейПриложенияДляОбновления; | |||
for (var номер in список) | |||
{ | |||
var указатель = список[номер]; | |||
localStorage.removeItem(указатель); | |||
} | |||
}; | |||
// // // // | |||
ПроверитьНаличиеМодулейПриложенияДляОбновления = мир => | |||
{ | |||
if (мир.списокМодулейПриложенияДляОбновления.length) | |||
{ | |||
мир.уведомить("присутствуют модули приложения для обновления"); | |||
} | |||
else | |||
{ | |||
мир.уведомить("отсутствуют модули приложения для обновления"); | |||
} | |||
} | |||
// // // // | |||
СоставитьСписокМодулейПриложенияДляОбновления = мир => | |||
{ | |||
var список = []; | |||
var описания = мир.описанияМодулейПриложения; | |||
for (var указатель in описания) | |||
{ | |||
var описание = описания[указатель]; | |||
var модуль = мир.модули.модульПоУказателю(указатель); | |||
if ( | |||
модуль && | |||
модуль.версия != описание.версия | |||
) { | |||
список.push(указатель); | |||
} | |||
} | |||
мир.списокМодулейПриложенияДляОбновления = список; | |||
}; | |||
// // // // | |||
УведомитьОбОтсутствииОбновленийПриложения = мир => | |||
{ | |||
мир.уведомить("обновления приложения отсутствуют"); | |||
}; | |||
// // // // | |||
ЗагрузитьОписаниеВсехМодулейПриложения = мир => | |||
{ | |||
var указатели = [УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ]; | |||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ); | |||
var содержимое = м.содержимое["/📦"]; | |||
var строки = содержимое.split(/\n/); | |||
for (var номер in строки) | |||
{ | |||
var строка = строки[номер]; | |||
if (!строка.startsWith("#") && строка.length) | |||
{ | |||
указатели.push(строка); | |||
} | |||
} | |||
мир.описанияМодулейПриложения = []; | |||
function загрузитьОписание(мир, список, номер, успех, провал) | |||
{ | |||
const указатель = список[номер]; | |||
мир.взять( | |||
указатель, | |||
function(содержимое) { | |||
var описание = мир.разобрать0000(содержимое); | |||
мир.описанияМодулейПриложения[указатель] = описание; | |||
успех(); | |||
}, | |||
function(ошибка) { | |||
провал(); | |||
} | |||
); | |||
} | |||
сделатьПараллельно( | |||
мир, | |||
указатели, | |||
загрузитьОписание, | |||
function() { | |||
мир.уведомить("загрузили описание всех модулей приложения"); | |||
}, | |||
function() { | |||
мир.уведомить("не загрузили описание всех модулей приложения"); | |||
} | |||
); | |||
}; |
@@ -0,0 +1,12 @@ | |||
надо обновить приложение при наличии обновлений | |||
загрузить описание всех модулей приложения | |||
не загрузили описание всех модулей приложения | |||
уведомить об отсутствии обновлений приложения | |||
загрузили описание всех модулей приложения | |||
составить список модулей приложения для обновления | |||
проверить наличие модулей приложения для обновления | |||
отсутствуют модули приложения для обновления | |||
уведомить об отсутствии обновлений приложения | |||
присутствуют модули приложения для обновления | |||
удалить модули приложения перед обновлением | |||
перезагрузить приложение после обновления |
@@ -0,0 +1,24 @@ | |||
ЗагрузитьБиблиотекиПриложения = мир => | |||
{ | |||
var указатели = []; | |||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ); | |||
var содержимое = м.содержимое["/📦"]; | |||
var строки = содержимое.split(/\n/); | |||
for (var номер in строки) | |||
{ | |||
var строка = строки[номер]; | |||
if (!строка.startsWith("#") && строка.length) | |||
{ | |||
указатели.push(строка); | |||
} | |||
} | |||
var сообщение = "Загрузка библиотек ⚬ 加载库 ⚬ Loading libraries"; | |||
console.debug(сообщение, указатели); | |||
мир.модули.использовали.подписатьРаз(function() { | |||
мир.уведомить("ручной пуск"); | |||
мир.уведомить("загрузили библиотеки приложения"); | |||
}); | |||
мир.модули.использовать(указатели); | |||
}; |