导出程序将动画数据写入到一个自定义的二进制格式中。该程序只是逐帧遍历时间线,然后将每帧的变化都写出来。
这里,我想出的一个方法是将数据导出成汇编代码,而不是二进制文件。当然汇编代码并不是CPU指令,只是数据而已。这样调试可以更容易一些,因为我可以翻阅汇编文件,查看生成的内容,而不需要通过二进制编辑器来查看每个字节。

哪个更容易调试?
我可以选择让导出程序将字节码写到一个文件中,同时将文本代码写到另一个文件中,但我并没有这样做,而是选择了汇编器,因为(1)我已经有汇编器了;(2)不需要再调试汇编器;(3)汇编器支持标签。
导出程序的其余部分就没什么意思了,只不过是遍历整个树,然后转换变换矩阵、颜色效果等数据。最后再进一步转换游戏程序本身。我选择C 编写导出程序的原因只是我熟悉C 而已。

这款游戏非常适合使用场景图。场景图是Flash采用的模型,游戏就围绕着场景图设计,所以没有道理换成其他模型。
我将场景作为树的节点保存在内存中,每个节点有一个变换,可以绘制自己,并接受鼠标点击事件。每个游戏对象都拥有自己的行为,是自身的类的一个实例,这些类是从Node类继承而来的。虽然在游戏设计圈,面向对象已经不流行,但因为我用的是Flash,所以并不在乎。
游戏使用的Flash特性(如颜色变换、遮罩等)都是现成的,尽管我实现的遮罩并不支持任意形状的遮罩,而只是矩形裁切而已,然后我将所有图形都编辑成了矩形,这样所有遮罩都用矩形就可以了。

这款游戏几乎所有的逻辑都是用ActionScript编写的附着在时间线上的帧脚本。这些要怎么导出?我不想在游戏中包含ActionScript解释器。
