@@ -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() { | |||||
мир.уведомить("ручной пуск"); | |||||
мир.уведомить("загрузили библиотеки приложения"); | |||||
}); | |||||
мир.модули.использовать(указатели); | |||||
}; |