AS 3最简单的Flash游戏框架(个人观点)

本文介绍了一个简单游戏的状态管理机制,包括游戏初始化、进行中和结束三个状态,并通过Flash AS3实例展示了如何实现状态间的切换及相应的事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、状态循环

二、游戏频率

三、事件模型

第一步是,分几类游戏状态,一般是游戏初始化,正在游戏,游戏结束三种状态,

第二步是,游戏频率比较好理解,就是多长时间间隔进行一个判断当前状态,

第三步是,就是在各类游戏状态下,你要做什么事情。

有了思路可以看看最简单的游戏框架例子:

package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class Game extends MovieClip{

//三种游戏状态
 public static const STATE_INIT:int = 10;
 public static const STATE_PLAY:int = 20;
 public static const STATE_GAME_OVER:int = 30;
 public var gameState:int = 0;
 public var clicks:int = 0;
 public function Game():void {

//二、游戏频率,播放头移动的频率
  addEventListener(Event.ENTER_FRAME, gameLoop);
  gameState = STATE_INIT;
  }

//一、状态循环

  public function gameLoop(e:Event):void {
  switch(gameState) {
   case STATE_INIT :
   initGame();
   break;
   case STATE_PLAY:
   playGame();
   break;
   case STATE_GAME_OVER:
   gameOver();
   break;
   }
   }

//初始化

   public function initGame():void {
    stage.addEventListener(MouseEvent.CLICK, onMouseClickEvent);
                clicks = 0;
    gameState = STATE_PLAY;
    }

//游戏进行中

    public function playGame() {
     if (clicks >=10) {
     gameState = STATE_GAME_OVER;
     }
     }

//事件模型,游戏进行中的事件模型


   public function onMouseClickEvent(e:MouseEvent) {
     clicks++;
     trace("mouse click number:" + clicks);
     }

//游戏结束

   public function gameOver():void {
      stage.removeEventListener(MouseEvent.CLICK, onMouseClickEvent);
      gameState = STATE_INIT;
      trace("game over");
 }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值