СцЕНа МАджонга
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.8KB

  1. УбратьСтарыеФишкиСцены = мир =>
  2. {
  3. if (мир.сценаМаджонга.children.length)
  4. {
  5. мир.сценаМаджонга.remove(мир.сценаМаджонга.children[0]);
  6. }
  7. var корень = new THREE.Group();
  8. мир.сценаМаджонга.add(корень);
  9. мир.фишкиСцены = [];
  10. };
  11. // // // //
  12. СоздатьНовыеФишкиСцены = мир =>
  13. {
  14. var фишка = мир.модельФишкиСцены;
  15. var границы = фишка.geometry.boundingBox;
  16. var размеры = [
  17. (границы.max.x - границы.min.x) / 2,
  18. (границы.max.z - границы.min.z) / 2,
  19. //границы.max.y - границы.min.y,
  20. ];
  21. var отступ = мир.отступМеждуФишкамиСцены;
  22. for (var номер in мир.фишкиМаджонга)
  23. {
  24. // Узел сцены.
  25. var фм = мир.фишкиМаджонга[номер];
  26. var ф = фишка.clone();
  27. ф.userData = номер;
  28. мир.фишкиСцены.push(ф);
  29. мир.сценаМаджонга.add(ф);
  30. // Расположение.
  31. var п = фм["📍"];
  32. var слой = п[0];
  33. var ряд = п[1];
  34. var столбец = п[2];
  35. ф.position.x = столбец * (размеры[0] + отступ);
  36. ф.position.z = ряд * (размеры[1] + отступ);
  37. ф.position.y = слой;
  38. }
  39. };
  40. // // // //
  41. СоздатьФишкиВСцене = мир =>
  42. {
  43. мир.уведомить("надо создать фишки в сцене");
  44. };
  45. // // // //
  46. ПодготовитьСценуМаджонга = мир =>
  47. {
  48. мир.сценаМаджонга = new THREE.Group();
  49. мир.отступМеждуФишкамиСцены = 0.02;
  50. };