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