iT邦幫忙

2026 iThome 鐵人賽

DAY 28
0

昨天完成了全場緩速技能,今天決定替兩個技能加入冷卻限制。
因為目前技能只要擊殺數足夠就能使用,如果玩家不小心連續點擊,可能會在短時間內重複消耗擊殺數。因此今天加入冷卻機制,避免玩家誤觸。
目前設定為:

  • 技能一(全場清除):冷卻1秒。
  • 技能二(全場緩速):持續5秒,期間無法再次施放。

修改技能管理程式

首先修改原本的SkillManager,新增兩個技能的狀態判斷。清場技能使用後會進入1秒冷卻,緩速技能則是在5秒效果結束前禁止再次施放。
以下只列出這次新增或修改的部分:

// 技能冷卻與作用狀態
private bool isClearScreenActive = false;
private bool isSlowDownActive = false;

// 【技能一:全螢幕清場】
public void TriggerClearScreenSkill()
{
    if (isClearScreenActive)
    {
        Debug.Log("清場技能冷卻中,請稍候!");
        return;
    }

    if (ScoreManager.Instance != null && ScoreManager.Instance.UseSkill1())
    {
        isClearScreenActive = true;

        Target[] allTargets = FindObjectsOfType<Target>();
        foreach (Target target in allTargets)
        {
            if (target != null)
            {
                target.ForceKillBySkill();
            }
        }

        StartCoroutine(ClearScreenCooldownRoutine());
    }
    else
    {
        Debug.Log("擊殺數不足 50,無法施放清場技能!");
    }
}

private IEnumerator ClearScreenCooldownRoutine()
{
    yield return new WaitForSeconds(1.0f);
    isClearScreenActive = false;
}

// 【技能二:全場緩速】
public void TriggerSlowDownSkill()
{
    if (isSlowDownActive)
    {
        Debug.Log("緩速技能仍在作用中!");
        return;
    }

    if (ScoreManager.Instance != null && ScoreManager.Instance.UseSkill2())
    {
        isSlowDownActive = true;
        StartCoroutine(SlowDownRoutine());
    }
    else
    {
        Debug.Log("擊殺數不足 150,無法施放緩速技能!");
    }
}

另外,在原本的SlowDownRoutine()結束、恢復殭屍速度後,加入:

isSlowDownActive = false;

這樣就能避免技能尚未結束時再次扣除擊殺數。

第二十八天的成果與之後目標

今天主要完成了以下幾個部分:

  • 清場技能冷卻:使用後需要等待1秒才能再次施放。
  • 緩速技能限制:5秒緩速效果尚未結束時,無法重複施放。

目前兩個技能都已經加入使用限制,能減少玩家連續點擊造成的誤觸問題。
接下來打算在遊戲開始時加入技能介紹,讓玩家知道每個技能的效果、消耗的擊殺數與冷卻時間,避免玩家不知道技能的使用方式,以及結算畫面。


上一篇
Day 27|製作全場緩速技能
下一篇
Day 29|製作遊戲開始與結算畫面
系列文
從基礎到實作:使用 Google AI 學習程式設計 共 29 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言