在家宅了好几天,一直说做一套游戏引擎,断断续续终于做出个开始页面,而且还是从微软提供的 Catapult 实例修改来的。按钮图片时随手画的,小绿的图片是随手拿的。
其实改动还是很大的。为了重用性,特意加了 ScreenAsset 类来描述页面上的各个组件。另外还重构了好几个类,该合并的合并,该分拆的分拆,大部分设置都改成可以自行调整的参数。
游戏开始页面无非就是那么几个部分:背景、标题、附加的图像、菜单(多个文字+图像)。
总结经验如下:
-
游戏的启动顺序是:Constructor => Initialize() => LoadContent(),然后就开始按照帧率执行 Update() 和 Draw() 方法。(参考阅读)
-
标准游戏字体只能使用拉丁字母,需要中文要自己建立字表和 FontProcessor 来编译字库。这个字体编译很耗时,在我的 Core i7 860 上编译 3500 个汉字大概要半个小时。(参考阅读,其中要注意的是字表文件要放到 Content 文件夹下,并且设置为“不编译”)
-
最好不要在 Constructor 里面生成页面,因为此时 GraphicDeviceManager 还没有初始化完毕,很多参数无法拿到。建议在 LoadContent() 里面生成页面。
-
一次手误,将 Properties 的 get/set 操作中的变量名和属性名给写重了,结果编译之后莫名崩溃,找了好半天才找到原因。
-
音频文件只支持 WAV(?),所以我加了个背景音乐之后,编译出来的 XAP 竟然有 32MB。
接下来要做游戏页面了。不知道又要花多少天。