以下是一个简单的Flash打地鼠游戏示例代码(ActionScript 3.0),包含基础游戏逻辑和注释说明:

“`actionscript

package {

import flash.display.Sprite;

import flash.events.MouseEvent;

import flash.utils.Timer;

import flash.events.TimerEvent;

import flash.text.TextField;

public class WhackAMole extends Sprite {

private var holes:Array = []; // 地鼠洞数组

private var score:int = 0; // 游戏分数

private var timeLeft:int = 30;// 剩余时间

private var moleTimer:Timer; // 地鼠生成计时器

private var gameTimer:Timer; // 游戏时间计时器

private var scoreText:TextField; // 分数显示

private var timeText:TextField; // 时间显示

public function WhackAMole() {

createGameField();

setupGame();

}

// 创建游戏场地

private function createGameField():void {

// 创建3×3的地鼠洞

for(var i:int = 0; i < 3; i++) { for(var j:int = 0; j < 3; j++) { var hole:Sprite = createHole(); hole.x = 100 + j 150; hole.y = 100 + i 150; addChild(hole); holes.push(hole); } } // 创建分数/时间显示 scoreText = new TextField(); scoreText.text = "Score: 0"; scoreText.x = 50; scoreText.y = 50; addChild(scoreText); timeText = new TextField(); timeText.text = "Time: 30"; timeText.x = 250; timeText.y = 50; addChild(timeText); } // 创建单个地鼠洞 private function createHole():Sprite { var hole:Sprite = new Sprite(); hole.graphics.beginFill(0x663300); hole.graphics.drawCircle(0, 0, 50); hole.graphics.endFill(); return hole; } // 初始化游戏设置 private function setupGame():void { // 创建计时器(每1秒生成地鼠) moleTimer = new Timer(1000); moleTimer.addEventListener(TimerEvent.TIMER, showMole); moleTimer.start(); // 游戏倒计时(30秒) gameTimer = new Timer(1000, 30); gameTimer.addEventListener(TimerEvent.TIMER, updateTimer); gameTimer.addEventListener(TimerEvent.TIMER_COMPLETE, endGame); gameTimer.start(); } // 随机显示地鼠 private function showMole(e:TimerEvent):void { // 随机选择一个洞 var randomIndex:int = Math.floor(Math.random() holes.length); var hole:Sprite = holes[randomIndex]; // 创建地鼠 var mole:Sprite = new Sprite(); mole.graphics.beginFill(0xFF0000); mole.graphics.drawCircle(0, 0, 30); mole.graphics.endFill(); mole.x = hole.x; mole.y = hole.y; mole.name = "mole"; addChild(mole); // 添加点击事件 mole.addEventListener(MouseEvent.CLICK, whackMole); // 自动消失计时器 var moleLife:Timer = new Timer(800, 1); moleLife.addEventListener(TimerEvent.TIMER_COMPLETE, function():void { removeChild(mole); }); moleLife.start(); } // 打击地鼠 private function whackMole(e:MouseEvent):void { var mole:Sprite = e.target as Sprite; if(mole && contains(mole)) { removeChild(mole); score += 10; scoreText.text = "Score: " + score; } } // 更新游戏时间 private function updateTimer(e:TimerEvent):void { timeLeft--; timeText.text = "Time: " + timeLeft; } // 游戏结束 private function endGame(e:TimerEvent):void { moleTimer.stop(); gameTimer.stop(); // 清除所有地鼠 for(var i:int = numChildren -1; i >=0; i–){

if(getChildAt(i).name == “mole”){

removeChildAt(i);

}

}

// 显示最终分数

var endText:TextField = new TextField();

endText.text = “Game Over! Final Score: ” + score;

endText.x = 100;

endText.y = 300;

addChild(endText);

}

}

}

“`

代码说明:

1. 游戏使用ActionScript 3.0编写,创建一个3×3的打地鼠游戏

2. 核心功能包括:

– 随机生成地鼠(红色圆形)

– 点击得分机制(每次+10分)

– 30秒倒计时

– 自动消失的地鼠(800毫秒)

– 实时分数/时间显示

3. 使用Timer类控制游戏节奏

4. 包含游戏结束逻辑和最终分数显示

注意事项:

1. 需要配合Flash开发环境使用(如Adobe Animate)

2. 可调整参数:

– moleTimer间隔(控制地鼠生成速度)

– moleLife持续时间(控制地鼠停留时间)

– 游戏总时长(默认30秒)

3. 可通过修改图形和数值增强游戏性

建议扩展功能:

1. 添加音效(击中/背景音乐)

2. 增加不同分值的地鼠类型

3. 添加难度递增机制

4. 实现高分榜系统

5. 添加更复杂的动画效果

(注:由于Flash技术已逐渐淘汰,建议新项目使用HTML5+JavaScript等现代Web技术实现)