Advertisement
lovelymondayss

Untitled

Nov 7th, 2022 (edited)
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. import Phaser from "phaser";
  2.  
  3. export default class CoronaBusterScene extends Phaser.Scene {
  4. constructor() {
  5. super("corona-buster-scene");
  6. }
  7.  
  8. init() {
  9. this.clouds = undefined;
  10. this.nav_left = false;
  11. this.nav_right = false;
  12. this.shoot = false;
  13. this.player = undefined;
  14. this.speed=60;
  15.  
  16. }
  17.  
  18. preload() {
  19. this.load.image("background", "images/bg_layer1.png");
  20. this.load.image("cloud", "images/cloud.png");
  21. this.load.image("left-btn", "images/left-btn.png");
  22. this.load.image("right-btn", "images/right-btn.png");
  23. this.load.image("shoot-btn", "images/shoot-btn.png");
  24. this.load.spritesheet("player", "images/ship.png",{
  25. frameWidth : 66,
  26. frameHeight : 66
  27. })
  28. }
  29.  
  30. create() {
  31. const gameWidth = this.scale.width * 0.5;
  32. const gameHeight = this.scale.height * 0.5;
  33. this.add.image(gameWidth, gameHeight, "background");
  34.  
  35. this.clouds = this.physics.add.group({
  36. key: "cloud",
  37. //ulangi tampilkan awan
  38. repeat: 20,
  39. });
  40.  
  41. Phaser.Actions.RandomRectangle(
  42. this.clouds.getChildren(),
  43. this.physics.world.bounds
  44. );
  45.  
  46. this.createButton();
  47. this.player=this.createPlayer();
  48. }
  49.  
  50. update(time) {
  51. this.player=this.createPlayer();
  52. this.clouds.children.iterate((child) => {
  53. //arah gerak awan ke bawah
  54. child.setVelocityY(20);
  55. if (child.y > this.scale.height) {
  56. child.x = Phaser.Math.Between(10, 400);
  57. child.y = child.displayHeight * -1;
  58. }
  59. });
  60. this.movePlayer(this.player);
  61. }
  62.  
  63. createButton() {
  64. this.input.addPointer(3);
  65.  
  66. let shoot = this.add
  67. .image(320, 550, "shoot-btn")
  68. .setInteractive()
  69. .setDepth(0.5)
  70. .setAlpha(0.8);
  71.  
  72. let nav_left = this.add
  73. .image(50, 550, "left-btn")
  74. .setInteractive()
  75. .setDepth(0.5)
  76. .setAlpha(0.8);
  77.  
  78. let nav_right = this.add
  79. .image(nav_left.x + nav_left.displayWidth + 20, 550, "right-btn")
  80. .setInteractive()
  81. .setDepth(0.5)
  82. .setAlpha(0.8);
  83.  
  84. nav_left.on(
  85. "pointerdown",
  86. () => {
  87. this.nav_left = true;
  88. },
  89. this
  90. );
  91. nav_left.on(
  92. "pointerout",
  93. () => {
  94. this.nav_left = false;
  95. },
  96. this
  97. );
  98. nav_right.on(
  99. "pointerdown",
  100. () => {
  101. this.nav_right = true;
  102. },
  103. this
  104. );
  105. nav_right.on(
  106. "pointerout",
  107. () => {
  108. this.nav_right = false;
  109. },
  110. this
  111. );
  112. shoot.on(
  113. "pointerdown",
  114. () => {
  115. this.shoot = true;
  116. },
  117. this
  118. );
  119. shoot.on(
  120. "pointerout",
  121. () => {
  122. this.shoot = false;
  123. },
  124. this
  125. );
  126. }
  127.  
  128. createPlayer(){
  129. const player = this.physics.add.sprite(200, 450, 'player')
  130. player.setCollideWorldBounds(true)
  131. this.anims.create({
  132. key: 'turn',
  133. frames:[ { key: 'player', frame: 0 } ],
  134. })
  135. this.anims.create({
  136. key: 'left',
  137. frames: this.anims.generateFrameNumbers(
  138. 'player', {start: 1, end: 2}),
  139. frameRate: 10
  140. })
  141. this.anims.create({
  142. key: 'right',
  143. frames: this.anims.generateFrameNumbers('player',
  144. {start:1, end:2}),
  145. frameRate: 10
  146. })
  147.  
  148. return player
  149.  
  150. }
  151. movePlayer(player){
  152. if (this.nav_left){
  153. this.player.setVelocityX(this.speed * -1)
  154. this.player.anims.play('left', true)
  155. this.player.setFlipX(false)
  156. } else if (this.nav_right){
  157. this.player.setVelocityX(this.speed)
  158. this.player.anims.play('right', true)
  159. this.player.setFlipX(true)
  160. } else {
  161. this.player.setVelocityX(0)
  162. this.player.anims.play('turn')
  163. }
  164. }
  165.  
  166.  
  167.  
  168. }
  169.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement