父母出去了,轻轻带上门。林浩坐在电脑前,感受著皮质椅面的冰凉触感。他打开瀏览器,输入“flashmx下载”——用的是拨號上网,连接速度52k,网页加载很慢。
下载了一个多小时,终於下好了flashmx的安装包。安装,输入序列號——小艺提供了可用的序列號。安装完成,桌面上出现了那个熟悉的紫色图標。
他点开。软体启动,界面是2002年的风格,工具栏图標很大,配色鲜艷。
新建一个flash文档。舞台尺寸设为550x400,帧率设为24fps。
然后他打开记事本。不,不是用来写代码,是用来做笔记。
“小艺,唤醒。”
“我在。当前电量4。5%。”
“调出flash游戏基础框架的核心代码。只要结构,不要具体实现。用我能理解的方式描述。”
“正在整理……”
手机屏幕亮起,显示出一段简化的代码结构。林浩仔细看,不是逐行代码,而是偽代码,用中文描述算法和思路。
他一边看,一边在记事本上记。
“游戏主循环:基於enterframe事件。每一帧,更新所有游戏对象的状態,检测碰撞,重绘。”
“对象池:预创建对象数组,使用时取出,用完后重置状態放回,避免频繁创建销毁导致的性能问题。”
“碰撞检测:矩形碰撞,判断两个显示对象的边界矩形是否相交。”
“得分系统:全局变量存储分数,碰撞检测到特定物体时加分,分数显示在舞台左上角。”
“资源管理:使用loader类加载外部图片和声音,加入加载队列,全部加载完成后启动游戏。”
他记了整整三页。不是照抄,而是理解后用自己的话重新描述。有些概念2002年还没有,他需要找到替代方案。
比如小艺提到的“事件监听模型”,在flashmx中需要用on()函数或者addlistener()方法,不完全一样。
比如“面向对象编程”,as2。0虽然支持,但还不成熟,很多开发者还在用面向过程的写法。
他必须把2028年的先进思路,翻译成2002年能实现的技术方案。
这个过程很慢,很费力。他经常要停下来思考,查flashmx的帮助文档,甚至写一小段测试代码验证想法。
但好处是,他真正理解了。不是知道“该这么写”,而是知道“为什么这么写”。
窗外天色渐渐暗下来。母亲敲了敲门,端进来一碗绿豆汤:“歇会儿,喝点汤。”
“好,谢谢妈。”
母亲放下碗,看了看屏幕上那些看不懂的代码,又看了看儿子专注的侧脸。她没说什么,轻轻退了出去。
林浩喝了一口绿豆汤,很甜,冰镇的,解暑。
他继续。
开始写真正的代码。打开flashmx的代码编辑器,在第一帧上右键,选择“动作”。
光標在代码编辑区闪烁。
他深吸一口气,敲下第一行:
flash游戏基础框架
作者:林浩
日期:2002年6月12日
然后是第二行:
初始化游戏变量
第三行:
预加载资源