Q版海底俄罗斯

2009-6-13 评论(5) 分类:作品 Tags:

quadrapop

普通版:http://bangswork.googlecode.com/svn/trunk/QuadraPop/index.html

校内应用版:http://apps.xiaonei.com/quadrapop/

关于游戏

某一天突然想做索爱手机里的“Q版海底俄罗斯”游戏,上网搜了,没人做过非手机版的,有点惊讶,难道这个游戏知名度这么低?没人做刚好,我挺想做这个游戏的。下了这个游戏的手机版,搜了JAR破解软件Halo,提取了里面的图片资源,做成FLASH里一个个元件。FLASH很久没碰了,边做边回顾FLASH那些语法特点,倒还挺快熟悉它,有一些模糊印象,重新学起来很轻松。果然编程思想才是主要的,语言无关紧要。

我做起东西来是挺疯狂的,直到把它完成了才算了解心头一事,所以最近坐在电脑前的时间几乎都用在这上面了。小小的一个游戏,做起来还真不容易,bug不断,逻辑复杂,这也是我设计不合理造成的吧,功力还未到家,但最后总算做出来了,但有多少潜在bug还不知道。

整个游戏还没全做完,还差菜单和排行榜部分,就不放上了,之后打算放上校内网,这该是暑假的事了,快要考试,得集中精力学课程了。

关于体会

写个游戏可以体会到编程一些相关的东西,代码刚开始还很注重质量,分出类,但到后来几乎所有的逻辑都写在一个类里了,因为关联度都很高,不知怎么分出来。成了半对象半结构的程序了。

在查找错误的时候面对一坨代码,复杂得要命,才知道设计模式里那么折腾分出那么多个类是干嘛使的。

面对非常偶然出现的错误,很难碰到,又不知道去哪里查错,了解到软件测试应该是怎样的。

写游戏要注重太多细节了,虽然说事先把整体规划好再写会轻松很多,但没达到一定水平实在是做不到,跟建筑一样,砌砖实施容易,设计整个建筑难。

关于目的

有时候做一件事,不需要那么目的明确吧?有人说“做这个干吗”,很早以前也是,初中时高中时,“怎么老是做这些东西(不好好学习)?”。我可以有很多答案,最简单的是,just for fun。如果每做一件事都要想清楚做它干嘛,那也太累了,想做就做。

关于FLASH

编程过程中,对FLASH以及AS3的一些特点有点不爽:

  1. 编辑器差,连选中整段tab都不行,代码提示非常少。
  2. debugger差,程序出错不会提示是哪一行 只会提示是哪一个函数(也可能是我不会用)
  3. removeListener写错不会报错,如果从未设定addEventListener(Event.ENTER_FRAME,move),写removeEventListener(Event.ENTER_FRAME,move); 时也不会报错
  4. 例:addEventListener(Event.ENTER_FRAME,move) 向侦听函数move传参数超麻烦
  5. 在把显示对象添加进舞台前,在现实对象里无法调用stage,麻烦。
  6. 要在某处延迟执行某一语句很麻烦

后续(6月15日)

做完菜单,本来以为OK了,一玩才发现有时暂停结束回来会出错,为了这个BUG,抓狂了好几个小时,就是找不到究竟是哪里错了,而且到现在我还不知道这个bug解决了没有,惨,被一个BUG搞到头晕脑胀,想来还是因为整个游戏结构设计得差,程序写得乱,有时为了实现一些功能就这补些代码那不些代码,改来改去,很乱。这也是能力不足的体现吧。快要考试了,不能再继续这样疯狂地折腾这个了,就先这样吧。算是有成品出来了:http://cnbang.net/QuadraPop/