一、状态循环
二、游戏频率
三、事件模型
第一步是,分几类游戏状态,一般是游戏初始化,正在游戏,游戏结束三种状态,
第二步是,游戏频率比较好理解,就是多长时间间隔进行一个判断当前状态,
第三步是,就是在各类游戏状态下,你要做什么事情。
有了思路可以看看最简单的游戏框架例子:
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"); } } }