iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
Modern Web

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

菜雞用 Phaser 拾起童年遊戲 11

  • 分享至 

  • xImage
  •  

昨天我們做完了我們的扣血機制,有扣血也要有補血嘛!
所以我們今天就來加上補血的機制!

Photo by Anna Kolosyuk on Unsplash

補血機制

主角站到一個樓梯時,補 1 生命值,並且不能重複補血。
一樣我們利用之前的碰撞 callback 來完成這個機制。
這邊我們利用他是物件的特性給他一個屬性是 isHeal 讓我們來確定是不是已經被踩過補過血了。
記得也要在心串間的樓梯上新增唷!

function create(){
  ...
  // 加上碰撞後的callback
  this.physics.add.collider(player, grounds, heal, null, this);
  ...
  grounds.getChildren().forEach((el) => {
    el.body.immovable = true;
    el.body.checkCollision = groundCollision;
    el.isHeal = false;
  });
  
}

function update(){
  ...
  grounds.getChildren().forEach((el) => {
    if (el.y < 0) {
      el.destroy();

      ground = grounds
        .create(
          Phaser.Math.Between(0, 600),
          Phaser.Math.Between(1200, 1250),
          "ground"
        )
        .setScale(0.5);
      ground.body.immovable = true;
      ground.body.checkCollision = groundCollision;
      ground.isHeal = false;
    }
  });
}


function heal(player, ground) {
  // 確認是否滿血並且樓梯沒有被踩過補過血
  life += life === 10 || ground.isHeal ? 0 : 1;
  // 補完把屬性轉成 true
  ground.isHeal = true;
}

總結

今天完成了補血機制,我們的下樓梯雛形漸漸地在出現了~
就快完成了~加油加油!讓我們明天繼續努力!

tags: Phaser Game 2020鐵人賽

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

尚未有邦友留言

立即登入留言