Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

56 рядки
2.1KB

  1. function создатьУзлыСценыПоСтруктуре(структура)
  2. {
  3. for (var имя in структура)
  4. {
  5. var узел = null;
  6. var описание = структура[имя];
  7. var свойства = {};
  8. Object.assign(свойства, описание);
  9. delete свойства["тип"];
  10. delete свойства["x"];
  11. delete свойства["y"];
  12. delete свойства["texture"];
  13. delete свойства["группы"];
  14. // Создаём узел.
  15. if (описание.тип == "изображение")
  16. {
  17. узел = описание.родитель.add.image(описание.x, описание.y, описание.texture);
  18. }
  19. else if (описание.тип == "платформа")
  20. {
  21. узел = описание.родитель.create(описание.x, описание.y, описание.texture);
  22. }
  23. else if (описание.тип == "спрайт")
  24. {
  25. узел = описание.родитель.add.sprite(описание.x, описание.y, описание.texture);
  26. }
  27. // Помещаем в группы.
  28. for (var номер in описание.группы)
  29. {
  30. var группа = описание.группы[номер];
  31. группа.add(узел);
  32. }
  33. // Задаём имя.
  34. узел.name = имя;
  35. // Выставляем оставшиеся невыставленными свойства.
  36. for (var свойство in свойства)
  37. {
  38. var значение = свойства[свойство];
  39. узел[свойство] = значение;
  40. }
  41. // Необходимо после смены originX/Y.
  42. узел.updateDisplayOrigin();
  43. // Необходимо для статических физических объектов.
  44. if ("refreshBody" in узел)
  45. {
  46. узел.refreshBody();
  47. }
  48. }
  49. }