Q版海底俄罗斯
2009-6-13
普通版: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的一些特点有点不爽:
- 编辑器差,连选中整段tab都不行,代码提示非常少。
- debugger差,程序出错不会提示是哪一行 只会提示是哪一个函数(也可能是我不会用)
- removeListener写错不会报错,如果从未设定addEventListener(Event.ENTER_FRAME,move),写removeEventListener(Event.ENTER_FRAME,move); 时也不会报错
- 例:addEventListener(Event.ENTER_FRAME,move) 向侦听函数move传参数超麻烦
- 在把显示对象添加进舞台前,在现实对象里无法调用stage,麻烦。
- 要在某处延迟执行某一语句很麻烦
后续(6月15日)
做完菜单,本来以为OK了,一玩才发现有时暂停结束回来会出错,为了这个BUG,抓狂了好几个小时,就是找不到究竟是哪里错了,而且到现在我还不知道这个bug解决了没有,惨,被一个BUG搞到头晕脑胀,想来还是因为整个游戏结构设计得差,程序写得乱,有时为了实现一些功能就这补些代码那不些代码,改来改去,很乱。这也是能力不足的体现吧。快要考试了,不能再继续这样疯狂地折腾这个了,就先这样吧。算是有成品出来了:http://cnbang.net/QuadraPop/
[…] 做的过程还是跟做Q版海底俄罗斯时一样疯狂,可能更疯狂些,我做东西似乎都急着要把它做完,这次做的速度也算挺快的了,5号开始到14号完成,期间还有一天回碣石没做。做的过程中觉得乱,但做完后觉得结构还可以不是很乱,该分出来的分出来了,还算清晰~接下来还要慢慢完善,还有许多功能可以做。 […]