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

    技术2024-06-22  69

    一、状态循环

    二、游戏频率

    三、事件模型

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

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

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

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

    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");  }  } }

    最新回复(0)