游戏开发中很重要的一点就是状态的使用,不论是角色的状态,还是游戏的状态。
要在Flash中使用状态,以角色的状态为例,在类中定义如下常量:
public static const STATE_INIT:int = 10;
public static const STATE_WALK:int = 20;
public static const STATE_RUN:int = 30;
其中数值只要不一样,在int范围之内就可以。这样就定义了角色的几种状态。然后再在类中定义变量:
public var gameState:int = 0;
这个代表角色的当前状态。也可以设置成private的。
顺便提一下,AS3的规范,private变量名字一般用下划线_开头,比如刚才那个变量改成private应该写成:
private var _gameState:int = 0;
我也比较赞同AS3的做法。
然后再在角色的gameLoop方法中,写如下结构的语句:
switch(gameState) {
case STATE_INIT :
//角色初始化
break;
case STATE_WALK:
//角色走路
break;
case STATE_RUN:
//角色跑步
break;
}
这个switch-case语句,通过gameState,控制了角色状态的改变。
接下来,我再说一下如何建立多个状态的角色元件。
其实也很简单,只需要在角色中创建多个关键帧,然后在代码中用this.gotoAndStop(帧数);切换就可以了,当然要在构造方法中添加this.stop();来停止动画的播放。至于关键帧的时间,只需要一帧即可。
使用“帧标签”可以更加方便。在角色元件,点击一个关键帧,查看属性,找到“帧标签”:
至于多个状态的游戏场景,只需要使用多个场景元件,然后让它们接连使用addChild和removeChild从舞台上增加和移除即可。