Files
mahjong-scena/пуск|run.js

143 lines
3.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// // // //
ИсправитьОтслеживаниеНажатийНаIOS = мир =>
{
// https://stackoverflow.com/a/31459240/3404710
мир.отрисовщик.domElement.style.cursor = "pointer";
};
// // // //
ОтслеживатьНажатияПальцем = мир =>
{
window.addEventListener(
"touchstart",
function(событие) {
var позиция = new THREE.Vector2();
позиция.x = (событие.touches[0].clientX / window.innerWidth) * 2 - 1;
позиция.y = - (событие.touches[0].clientY / window.innerHeight) * 2 + 1;
мир.позицияНажатия = позиция;
мир.уведомить("нажали");
}
);
};
// // // //
ОтслеживатьНажатияМышью = мир =>
{
window.addEventListener(
"click",
function(событие) {
var позиция = new THREE.Vector2();
позиция.x = (событие.clientX / window.innerWidth) * 2 - 1;
позиция.y = - (событие.clientY / window.innerHeight) * 2 + 1;
мир.позицияНажатия = позиция;
мир.уведомить("нажали");
}
);
};
// // // //
ЦентрироватьСцену = мир =>
{
var мин = {
"x": 0,
"z": 0,
};
var макс = {
"x": 0,
"z": 0,
};
for (var номер in мир.фишки)
{
const фишка = мир.фишки[номер];
if (фишка.position.x < мин.x)
{
мин.x = фишка.position.x;
}
if (фишка.position.x > макс.x)
{
макс.x = фишка.position.x;
}
if (фишка.position.z < мин.z)
{
мин.z = фишка.position.z;
}
if (фишка.position.z > макс.z)
{
макс.z = фишка.position.z;
}
}
мир.корень.position.x -= (макс.x - мин.x) / 2;
мир.корень.position.z -= (макс.z - мин.z) / 2;
};
// // // //
СоздатьФишкиВСцене = мир =>
{
мир.уведомить("надо создать фишки в сцене");
};
// // // //
ЗагрузитьРесурсыСцены = мир =>
{
мир.уведомить("надо загрузить ресурсы сцены");
};
// // // //
ПодготовитьСцену = мир =>
{
var коэффициент = 2;
var расстояние = 6;
мир.камера.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(мир.свет);
мир.корень = new THREE.Group();
мир.сцена.add(мир.корень);
};
// // // //
СоздатьЗагрузчикТекстур = мир =>
{
мир.загрузчикТекстур = new THREE.TextureLoader();
};
// // // //
СоздатьЗагрузчикGLTF = мир =>
{
мир.загрузчикGLTF = new THREE.GLTFLoader();
};