選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

110.колобок.js 4.9KB

3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. /*
  2. *
  3. * Реакции
  4. *
  5. */
  6. ЗагрузитьРесурсыКолобка= мир =>
  7. {
  8. мир.сцена.load.spritesheet(
  9. "колобок",
  10. "ресурсы/колобок/колобок.png",
  11. {
  12. frameWidth: 97,
  13. frameHeight: 94,
  14. }
  15. );
  16. };
  17. // // // //
  18. СоздатьКолобка = мир =>
  19. {
  20. мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
  21. мир.колобок.depth = 10;
  22. мир.колобок.body.setSize(50);
  23. // Портит анимацию прыжков!
  24. //мир.колобок.setBounceY(0.1);
  25. // Следить за колобком камерой.
  26. const камера = мир.сцена.cameras.main;
  27. камера.startFollow(мир.колобок, false, 0.1, 0.1);
  28. };
  29. // // // //
  30. СоздатьАнимацииКолобка = мир =>
  31. {
  32. var анимации = мир.сцена.anims;
  33. анимации.create({
  34. key: "колобок-неподвижен",
  35. frames: [{ key: "колобок", frame: 0 }],
  36. frameRate: 20,
  37. })
  38. анимации.create({
  39. key: "колобок-движение",
  40. frames: мир.сцена.anims.generateFrameNumbers("колобок", { start: 23, end: 1 }),
  41. frameRate: 20,
  42. repeat: -1,
  43. })
  44. анимации.create({
  45. key: "колобок-прыжок",
  46. frames: [{ key: "колобок", frame: 24 }],
  47. frameRate: 20,
  48. })
  49. };
  50. // // // //
  51. НастроитьСтолкновениеКолобка = мир =>
  52. {
  53. мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
  54. мир.сцена.physics.add.collider(мир.колобок, мир.вещи);
  55. мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);
  56. var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
  57. столкновениеВраги.overlapOnly = true;
  58. столкновениеВраги.collideCallback = function(a, b) {
  59. мир.уведомить("столкновение с врагом");
  60. };
  61. };
  62. // // // //
  63. ПереместитьКолобка = мир =>
  64. {
  65. if (!мир.управление)
  66. {
  67. мир.колобок.setVelocityX(0);
  68. return;
  69. }
  70. var x = 0;
  71. if (мир.управление.направление == -1)
  72. {
  73. x = -200;
  74. мир.колобок.flipX = true;
  75. }
  76. else if (мир.управление.направление == 1)
  77. {
  78. x = 200;
  79. мир.колобок.flipX = false;
  80. }
  81. мир.колобок.setVelocityX(x);
  82. if (мир.управление.прыжок && мир.колобок.body.touching.down)
  83. {
  84. мир.колобок.setVelocityY(-570);
  85. }
  86. };
  87. // // // //
  88. АнимироватьКолобка = мир => {
  89. var есть = "";
  90. if (мир.колобок.anims.currentAnim)
  91. {
  92. есть = мир.колобок.anims.currentAnim.key;
  93. }
  94. var надо = "колобок-неподвижен";
  95. if (мир.управление && мир.управление.прыжок && !мир.колобок.body.touching.down)
  96. {
  97. надо = "колобок-прыжок";
  98. }
  99. else if (мир.колобок.body.velocity.x != 0)
  100. {
  101. надо = "колобок-движение";
  102. }
  103. if (есть != надо)
  104. {
  105. мир.колобок.anims.play(надо);
  106. мир.уведомить("изменили анимацию колобка");
  107. }
  108. };
  109. // // // //
  110. ОтключитьСтолкновениеСПлатформами = мир => {
  111. мир.столкновениеПлатформы.active = false;
  112. };
  113. // // // //
  114. ВключитьСтолкновениеСПлатформами = мир => {
  115. мир.столкновениеПлатформы.active = true;
  116. };
  117. // // // //
  118. ОстановитьПередвижениеВещей = мир => {
  119. var вещи = мир.вещи.getChildren();
  120. for (var н in вещи)
  121. {
  122. var вещь = вещи[н];
  123. вещь.body.stop();
  124. }
  125. };
  126. /*
  127. *
  128. * Последовательность
  129. *
  130. */
  131. мир.разобрать(`
  132. загрузить ресурсы сцены
  133. загрузить ресурсы колобка
  134. создать сцену
  135. создать колобка
  136. создать анимации колобка
  137. настроить столкновение колобка
  138. изменили управление
  139. переместить колобка
  140. столкновение с врагом
  141. отключить столкновение с платформами
  142. обновить сцену
  143. анимировать колобка
  144. изменили анимацию колобка
  145. остановить передвижение вещей
  146. `);