游戏场景是由若干的图层组成的,在这里主要将图层划分为:
场景层:包括背景、建筑
UI层:主要包括一些面板(商店、好友、礼品栏
UI弹出层:主要包括一些弹出窗口(排行、帮助
向导层:这个图层主要作用就是做引导用的,可以先不用理会,在制作游戏向导的时候。会再
提示层:显示功能提示
鼠标操作层:所有的鼠标处理事件都是在这个图层处理。
插件模式:
利用插件我们可以将游戏划分成一个个小模块,每个模块对应一个插件,这样很适合团队分工开发一个游戏,在第二节中创建的“VillageGodModule”就是一个插件。在主程序启动后会加载这个插件,游戏的处理逻辑都在这个插件里面实现。
美术资源分包:
村神的美术资源都是分成若干个资源包,这样做的目的是用到哪个美术资源再加载那个,可以节省网络带宽,加快游戏加载速度。
一些配置:
语言配置 - 游戏中出现的提示信息等都在这个配置里面
在线礼品配置 – 为了鼓励玩家多在线所以需要有个配置,配置在线的奖励
道具配置 - 游戏道具的一些配置
建筑配置 – 建筑属性的一些配置
游戏配置 - 游戏启动第一个加载的就是这个配置,更具这个配置再做相应的处理
“村神”概括
注意:对于不清楚的地方先不用理会,带着疑问继续往下。
“村神”启动流程:
呼呼!写了一大堆自己都感觉云里雾雨里了,下面我们将进入实际的代码开发。
1、需要用到的常量定义
在VGCommon模块中创建类 TVGDefine,如下图:
该类中定义了以后需要使用的常量。
package constant { public class TVGDefine { // 初始化场景 public static const INIT_SCENE:int = 1000; // 进入场景 public static const INTO_SCENE:int = 1001; } }
2、创建主入口 “VillageGod”类:
VillageGod是JFAppMain的派生类。JFAppMain就是前面介绍的“游戏场景”,场景里按层划分好,以后会讲诉怎么使用这些层。
代码:
package { import com.jcit.core.JFAppMain; [SWF(width="950", height="640", frameRate="24")] public class VillageGod extends JFAppMain{ public function VillageGod() { super(); } } }
3、重载init方法:
在VillageGod类中按下快捷键Alt+Insert 会有一个弹出菜单选择Override methods..,如下图:
初始化方法主要完成:
※舞台初始化
※皮肤相关设置
※注册提示条
代码:
override protected function init(event:Event = null):void { super.init(event); // 初始化舞台 initStage(); // 保存装载参数 JFApp.parameters = root.loaderInfo.parameters; // 皮肤相关设置 JFAppConfig.skinWndColor = 0xFFF4A604; // 皮肤窗口背景色 UISkinDialog.resId = 1; // 皮肤对话框资源ID // 注册提示条 ToolTipManager.getInstance().registerToolTip(SimpleToolTip); ToolTipManager.getInstance().registerToolTip(LeftAlignSimpleToolTip, "LeftAlignSimpleToolTip"); }
4、装载系统配置:
※需要先创建系统配置文件:
★在主程序的src目录下创建一个名为cfg的包,如下图:
★在cfg包内创建一个名为“sys_cfg.json”文件,如下图:
※美术资源准备
将 logo.swf 和 res001.swf两个资源放在res目录下(可以把代码先下载下来,里面可以找到这两个资源),放置好后的结果如下图:
※配置“sys_cfg.json”文件
{
"logo_url":"res/logo.swf",
"res":[
{"id":1,
"url":"res/res001.swf",
"size":0
}
],
"prg_ver":"v1", ß 这个是程序版本号,具体作用后面会讲解
"res_ver":"v1" ß 这个是资源版本号
}
private function onLoadSysCfg():void { var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, loadCfgComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); var fileName:String = "cfg/sys_cfg.json?v=" + (new Date().getTime()).toString(); loader.load(new URLRequest(fileName)); }
加载完成后开始保存数据,将数据保存在VGCommon模块中:
★首先在VGCommon模块中创建cfg类,如下图:
★系统配置get和set代码:
private static var _sysCfg:Object; public static function get sysCfg():Object { return _sysCfg; } public static function set sysCfg(value:Object):void { _sysCfg = value; }
保存加载的配置:
config.cfg.sysCfg = JSON.decode(URLLoader(event.target).data);
这里需要给大家讲解一下IDEA的强大纠错方法,在我们程序出错的时候,IDEA都会为我们提出最近的解决方案,如下图:
提示里已经说的很明白了,只要按下Alt+Enter就可以导入缺少的引用。
今天教学就先写到这里,下一章我们就可以看到一点小成果了,加油!!!
本节源码下载地址:点这里下载
共有0个评论 我要评论»
网友回复/评论仅代表其个人看法,并不表明本社区同意其观点或证实其描述。
1.不欢迎无意义的回复/评论和类似“顶”、“沙发”之类没有营养的文字
如果只是想简单的表个态,请点 有用无用支持反对 等按钮
2.发言之前请再仔细看一遍文章,或许是您遗漏、误解了,理性讨论、切莫乱喷
3.严禁发布违法、违规的信息,请勿到处招贴广告、发布软文;
4.如果您发现自己的回复/评论不见了,请参考以上3条
5.不停制造违规、垃圾信息的,账户将被禁止