CASE STUDY:Mophun版贪吃蛇 for 索尼爱立信 T610(中国称为T618)
本CASE 抛弃Mophun附带的Snake版本,作者以A to Z的方式进行整个CASE。
Title:MyMSnake
Version: 0.01
采用语言: C
设计概要:
在这个版本中,只体现游戏的逻辑,强调可玩性,忽略菜单设计,最高分存档,游戏进度存储读取等。整个游戏类似或者模仿Nokia8250上的贪吃蛇版本,本文只供学习参考,并没有侵犯版权的意图。游戏的基本流程,一只小Snake,特别好吃,在屏幕上游走寻找食物,找到得分并长度增长。一段时间之后,小Snake的长度会增加,她不小心碰到墙壁跟自己的身体Game Over。
详细设计:
(1)、游戏中的基本数据结构:
小Snake可以用一个只能增长不能减少的链表表示,链表的存储结构如下:
D(R)->C(R)->B(R)->A(R)
括号中表示小Snake身体的运动方向,->表示链表指向,现在链表的头snakeHeader = A, 尾:snakeTailer = D
小Snake的运动规律分析:L 左 R右 U上 D下
在T(i)时刻,
A(U)B(L)
E(R)D(R)C(U)
在T(i+1)时刻,
E(U)
A(U)B(L)
D(R)C(U)
这样可以找到规律,其实完全可以用最后一个小Snake的节点的变换,达到小Snake按照特定规律移动的假象,这样算法的效率会很高。
小Snake吃到好吃的怎么办?
这只贪吃的Snake,吃到食物后,只需在链表的尾部在加格节点。OK。
整个地图用一个二位数组background[20][16],20,16取值是根据SE T618的屏幕大小:128 * 160 pixels * piexels 和8 * 8 的小Snake身体确定的, 你会发现这对游戏的编程工作有很大的帮助。我们可以这样简化整个游戏的逻辑:
A 小Snake移动前把在地图上的映像清除
B 小Snake移动后重新在地图上的映像自己的映像
C 小Snake移动后在地图上某点有两个自己的映像,GameOver.
今天就写到这里。接下来我会按照这个思想写源代码,这个CASE也是我的新项目,本人做过俄罗斯方块(J2SE J2ME) , 弹球(J2ME Mophun), 坦克大战(J2ME J2SE), 小飞机及其地图编辑器(J2ME J2SE),网络五子棋(J2SE),等一系列游戏.接下来会尝试rpg和3D的开发.当然,那都是这个CASE OK之后的事情了,这个CASE纯粹是为了写文章,而做的,放心我会很认真..我的email: gowithfox@163.com