Колобок на Phaser
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.

188 lines
4.2KB

  1. /*
  2. *
  3. * Реакции
  4. *
  5. */
  6. ЗагрузитьРесурсыИзбы = мир =>
  7. {
  8. мир.сцена.load.image("изба", "ресурсы/сцены/изба.jpg");
  9. мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
  10. };
  11. // // // //
  12. СоздатьИзбу = мир =>
  13. {
  14. мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0);
  15. };
  16. // // // //
  17. СоздатьПолыИСтеныКаркаса = мир =>
  18. {
  19. var полы = [
  20. {
  21. x: 0,
  22. y: 585,
  23. ширина: 43,
  24. },
  25. {
  26. x: 300,
  27. y: 585,
  28. ширина: 30,
  29. },
  30. {
  31. x: 510,
  32. y: 585,
  33. ширина: 200,
  34. },
  35. ];
  36. for (var номер in полы)
  37. {
  38. var пол = полы[номер];
  39. var элемент = мир.каркас.create(пол.x, пол.y, "основа").setOrigin(0, 0);
  40. элемент.setScale(пол.ширина, 1).refreshBody();
  41. элемент.setVisible(false);
  42. }
  43. var стены = [
  44. {
  45. x: 0,
  46. y: 385,
  47. высота: 50,
  48. },
  49. {
  50. x: 2000,
  51. y: 385,
  52. высота: 50,
  53. },
  54. ];
  55. for (var номер in стены)
  56. {
  57. var стена = стены[номер];
  58. var элемент = мир.каркас.create(стена.x, стена.y, "основа");
  59. элемент.setScale(1, стена.высота).refreshBody();
  60. элемент.setVisible(false);
  61. }
  62. };
  63. // // // //
  64. СоздатьПлатформы = мир =>
  65. {
  66. var п = [
  67. {
  68. x: 583,
  69. y: 473,
  70. ширина: 65,
  71. },
  72. {
  73. x: 666,
  74. y: 340,
  75. ширина: 3,
  76. },
  77. {
  78. x: 771,
  79. y: 340,
  80. ширина: 3,
  81. },
  82. {
  83. x: 862,
  84. y: 340,
  85. ширина: 3,
  86. },
  87. {
  88. x: 995,
  89. y: 350, // НАДО 345, чтобы не допрыгиать без помощи кота.
  90. ширина: 4,
  91. },
  92. {
  93. x: 620,
  94. y: 245,
  95. ширина: 35,
  96. },
  97. {
  98. x: 950,
  99. y: 180,
  100. ширина: 12,
  101. },
  102. {
  103. x: 1270,
  104. y: 427,
  105. ширина: 70,
  106. },
  107. {
  108. x: 1690,
  109. y: 375,
  110. ширина: 20,
  111. },
  112. ];
  113. for (var номер in п)
  114. {
  115. var часть = п[номер];
  116. var элемент = мир.платформы.create(часть.x, часть.y, "основа").setOrigin(0, 0);
  117. элемент.setScale(часть.ширина, 1).refreshBody();
  118. элемент.setVisible(false);
  119. }
  120. };
  121. // // // //
  122. ПозволитьПлатформамПропускатьПрыжки = мир =>
  123. {
  124. мир.платформы.children.iterate(function(платформа) {
  125. платформа.body.checkCollision.down = false;
  126. платформа.body.checkCollision.left = false;
  127. платформа.body.checkCollision.right = false;
  128. });
  129. };
  130. // // // //
  131. СоздатьВрагов = мир => {
  132. console.debug("создать врагов");
  133. /*
  134. var враг = мир.сцена.physics.add.sprite(150, 100, "основа");
  135. //мир.враги.add(враг);
  136. мир.сцена.physics.add.collider(враг, мир.каркас);
  137. мир.сцена.physics.add.collider(враг, мир.платформы);
  138. */
  139. //var враг = мир.враги.create(100, 100, "основа");//.setOrigin(0, 0);
  140. //враг.setScale(часть.ширина, 1).refreshBody();
  141. };
  142. /*
  143. *
  144. * Последовательность
  145. *
  146. */
  147. мир.разобрать(`
  148. загрузить ресурсы сцены
  149. загрузить ресурсы избы
  150. создать сцену
  151. создать избу
  152. создать полы и стены каркаса
  153. создать платформы
  154. позволить платформам пропускать прыжки
  155. создать врагов
  156. `);