iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0
Modern Web

菜雞用 Phaser 拾起童年遊戲 系列 第 20

菜雞用 Phaser 拾起童年遊戲 20

  • 分享至 

  • xImage
  •  

現在我們重新的機制重來的太快了~
體驗不佳,我們來調整調整他
讓他變得舒服,怎麼這句講起來怪怪的

Photo by Paige Cody on Unsplash

開始與結束提示文字

加上文字讓使用者來決定什麼時候開始他的遊戲。
也給予遊戲節數的提示。

    gameStartText = this.add.text(300, 300, "Press space to start");
    gameOverText = this.add.text(300, 300, "Game Over", {
      fontSize: "40px",
      color: "#ff0000",
    });
    gameOverText.visible = false;

開始機制

在玩家沒按下空白鍵以前,讓整個遊戲禁止不動,透過 isGameStart 作為 trigger 來控制遊戲是否進行,利用 isGameOver 作為遊戲是否結束的控制。

let isGameStart = false;
let isGameOver = false;
...

function create(){
    ...
    
    this.physics.pause();
}
...

function update(){ 
    if (isGameStart && !isGameOver) {
      this.physics.resume();
    }
    if (cursors.space.isDown && !isGameStart && !isGameOver) {
      isGameStart = true;
      gameStartText.visible = !isGameStart;
      ball.setVelocityY(200);
    }
    ...
    // 遊戲結束
    if (life === 0) {
      isGameStart = false;
      isGameOver = true
      gameStartText.visible = false;
      gameOverText.visible = true;
    }
    // 調整扣血判斷
    if (ball.body.y > 600 && !isGameOver) {
      this.physics.pause();
      lives.getChildren()[lives.getChildren().length - 1].destroy();
      ball.enableBody(true, 400, 500, true, true);
      board.enableBody(true, 400, 550, true, true);
      board.displayWidth = 95;
      board.setTint(0xffffff);
      isGameStart = false;
      speed = 160;
      direction = 1;
      life -= 1;
      gameStartText.visible = !isGameStart;
    }
}

現在就可以看到我們的開始畫面跟結束畫面囉!
讓流程更加順暢了,開心

總結

我們讓我們「打磚塊」流程更加順暢了,但是感覺玩遊戲沒有聲音不夠舒服,那我們明天來增加一些音效好了!

tags: Phaser Game 2020鐵人賽

上一篇
菜雞用 Phaser 拾起童年遊戲 19
下一篇
菜雞用 Phaser 拾起童年遊戲 21
系列文
菜雞用 Phaser 拾起童年遊戲 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言