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

126 lines
3.3KB

  1. /*
  2. *
  3. * Реакции
  4. *
  5. */
  6. ЗагрузитьРесурсыКолобка= мир =>
  7. {
  8. //мир.сцена.load.image("колобок", "ресурсы/колобок/колобок_неподвижен.png");
  9. мир.сцена.load.spritesheet(
  10. "колобок",
  11. "ресурсы/колобок/колобок.png",
  12. {
  13. frameWidth: 97,
  14. frameHeight: 94,
  15. }
  16. );
  17. };
  18. // // // //
  19. СоздатьКаркасИПлатформы = мир =>
  20. {
  21. мир.каркас = мир.сцена.physics.add.staticGroup();
  22. мир.платформы = мир.сцена.physics.add.staticGroup();
  23. };
  24. // // // //
  25. СоздатьКолобка = мир =>
  26. {
  27. мир.колобок = мир.сцена.physics.add.sprite(100, 100, "колобок");
  28. мир.колобок.depth = 10;
  29. мир.сцена.anims.create({
  30. key: "неподвижен",
  31. frames: [{ key: "колобок", frame: 0 }],
  32. frameRate: 20,
  33. })
  34. мир.сцена.anims.create({
  35. key: "движение",
  36. frames: мир.сцена.anims.generateFrameNumbers("колобок", { start: 23, end: 1 }),
  37. frameRate: 20,
  38. repeat: -1,
  39. })
  40. мир.сцена.anims.create({
  41. key: "прыжок",
  42. frames: [{ key: "колобок", frame: 24 }],
  43. frameRate: 20,
  44. })
  45. // Следить за колобком камерой.
  46. const камера = мир.сцена.cameras.main;
  47. камера.startFollow(мир.колобок, false, 0.1, 0.1);
  48. };
  49. // // // //
  50. СоздатьСтолкновениеКолобкаСКаркасомИПлатформами = мир =>
  51. {
  52. мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
  53. мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);
  54. };
  55. // // // //
  56. ПереместитьКолобка = мир =>
  57. {
  58. if (!мир.управление)
  59. {
  60. мир.колобок.setVelocityX(0);
  61. мир.колобок.anims.play("неподвижен");
  62. return;
  63. }
  64. var x = 0;
  65. if (мир.управление.направление == -1)
  66. {
  67. x = -200;
  68. мир.колобок.anims.play("движение");
  69. мир.колобок.flipX = true;
  70. }
  71. else if (мир.управление.направление == 1)
  72. {
  73. x = 200;
  74. мир.колобок.anims.play("движение");
  75. мир.колобок.flipX = false;
  76. }
  77. мир.колобок.setVelocityX(x);
  78. if (мир.управление.прыжок && мир.колобок.body.touching.down)
  79. {
  80. мир.колобок.setVelocityY(-570);
  81. мир.колобок.anims.play("прыжок");
  82. }
  83. };
  84. /*
  85. *
  86. * Последовательность
  87. *
  88. */
  89. мир.разобрать(`
  90. загрузить ресурсы сцены
  91. загрузить ресурсы колобка
  92. создать сцену
  93. создать каркас и платформы
  94. создать колобка
  95. создать столкновение колобка с каркасом и платформами
  96. изменили управление
  97. переместить колобка
  98. `);