萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 影像處理 >> Flash 教學

Flash 遊戲開發入門:打地鼠/打小狗經典實作

Flash 經典小遊戲「打小狗」完整實作:隨機生成、遮罩技術、滑鼠互動、計分系統

「打地鼠/打小狗」是 Flash 遊戲入門首選,涵蓋隨機數、遮罩、拖曳隱藏滑鼠、碰撞檢測、計時器、動態文字顯示分數等核心機制。本文完整拆解邏輯架構與製作流程。

遊戲介面預覽

打小狗遊戲介面

核心原理

  • 游標替換:Mouse.hide() + startDrag() 讓「菜刀」跟隨滑鼠,增強打擊感。
  • 隨機出洞:Math.random() 配合遮罩層,只在洞口區域顯示小狗,實現「探頭」效果。
  • 碰撞計分:滑鼠按下時 hitTest 判斷菜刀與小狗重疊,命中加分。
  • 計時結束:設定遊戲時長(如 30 秒),時間到停止生成,顯示最終分數於動態文字欄。

專案設定

  • 場景:400×360 px,背景 #006699,15 fps。
  • 圖層結構(自下而上):背景層、洞口遮罩層、小狗層(多幀隨機)、菜刀游標層、UI/分數層、腳本層。
    主場景圖層幀結構

關鍵 ActionScript (AS2) 邏輯

// 主時間軸框架代碼
var score:Number = 0;
var timeLimit:Number = 30; // 秒
var timerId:Number;

function startGame():Void {
    score = 0;
    txtScore.text = "0";
    Mouse.hide();
    knife_mc.startDrag(true); // 菜刀跟隨滑鼠
    timerId = setInterval(countDown, 1000);
    spawnDog(); // 首次生成
}

function countDown():Void {
    timeLimit--;
    if (timeLimit <= 0) {
        clearInterval(timerId);
        endGame();
    }
}

function spawnDog():Void {
    // 隨機選一個洞口 (假設 5 個洞,實例名 hole0~hole4)
    var idx:Number = Math.floor(Math.random() * 5);
    var targetHole:MovieClip = this["hole"+idx];
    // 在洞口遮罩區域內 attachMovie 小狗動畫
    var dog:MovieClip = targetHole.attachMovie("DogMC", "dog"+getNextHighestDepth(), getNextHighestDepth());
    dog._x = 0; dog._y = 0; // 相對洞口置中
    // 設定小狗自動消失計時
    setTimeout(function(){ if(dog) dog.removeMovieClip(); }, 1500);
    // 下一輪隨機延遲生成
    setTimeout(spawnDog, Math.random()*2000 + 500);
}

// 菜刀點擊檢測
knife_mc.onMouseDown = function():Void {
    for (var i=0; i<5; i++) {
        var dog:MovieClip = this._parent["hole"+i].dog; // 簡化引用
        if (dog && this.hitTest(dog)) {
            score += 10;
            txtScore.text = String(score);
            dog.gotoAndPlay("hit"); // 播放被打動畫
            break;
        }
    }
};

function endGame():Void {
    Mouse.show();
    knife_mc.stopDrag();
    // 顯示最終分數、重新開始按鈕等
}

遮罩技術細節

  • 每個洞口建一個「遮罩層」(圓形/橢圓形),下方為「小狗層」。
  • 小狗在遮罩區域內垂直移動(形狀補間或動作補間),超出遮罩即自動隱藏,完美模擬「探頭/縮回」。

擴展方向

  • 難度曲線:隨時間縮短出現間隔、增加同時出現數量、減小洞口遮罩區域。
  • 特殊小狗:炸彈狗(扣分)、金狗 (加分)、鐵頭狗 (需點擊兩次)。
  • 連擊系統:短時間內連續命中觸發 Combo 倍率。
  • 排行榜:結合 SharedObject 本地存儲或後端 API 存儲歷史高分。

原文參考

ZOL 軟體下載站原文(含源檔下載連結)

copyright © 萬盛學電腦網 all rights reserved