坦克大战手机版J2ME实现(创游杯参赛作品 – 未果…)(最后更新: 08年5月22日 – 支持诺基亚手机)
中文名称: 坦克大战
英文名称: Battle City
开发机型: sonyericsson k700c
屏幕大小: 176 * 208
代码行数: 7000行(关卡1500行)
开发周期: 1个月
支持: CLDC1.0 – MIDP2.0
关卡数量:70关(前35关自由选关)
说明:
从画面、AI等各个方面完美移植FC经典游戏《坦克大战》
由于诺基亚的S60系统的API的BUG,暂不支持诺基亚手机 ( 新版本支持诺基亚手机 )
由于我的设计的问题,游戏在大部分中端机型上运行有点卡…
Flash演示画面因为帧数比较少,K700C运行比较流畅
08年5月22日更新:
突然想到一种方法屏蔽诺基亚手机的LayerManager的API的BUG
恩,可以思考一下,如果诺基亚本身的CLASS有BUG,可以用没有BUG的CLASS啊,midp2.0也已经开源的,所以源代码是可以得到的,替换相关的部分,就可以了,还需要注释掉设置相应的setClip()问题,就完成了
08年6月8日更新:
此游戏的修改(优化)版本已商业发布!
原版JAR下载: BattleCity.jar (诺基亚手机请下载另外一个版本)
支持诺基亚版本: BattleCity2.jar (由于声音API不一样,声音播放有问题)(其他手机请下载原版)
—————————————————————-
作为程序员….
前期:
由于自己的策划和美术方面不行, 经过很长时间找素材的过程,发现自己的弱点,策划与相关素材的方面真是让我头痛…就放弃美工与策划原创…
也由于时间原因,决定移植一个比较简单的游戏,力图实现完美的移植,不管从图片,效果,甚至是AI上(暂不考虑扩展)
开发过程:
初步计划与实现:
1. 素材整理(07年9月9日开始)
1. 坦克图片资源整理完成(9月10日)
2. 所有图片资源整理与制作完毕(9月11日) — 敌方坦克,界面,字体,sprite,小元素
2. 策划案整理
策划案整理完毕(9月12日) — 动画贞定量分析,动画组合,tiledlayer层次,碰撞规律,道具动画
3. 编码开始
1. 整体框架设计完成,碰撞思路完成(UML完成) (9月14日)
2. 具体编码开始 (9月15日开始)
3. 框架类编码,顺序逻辑编码 (9月16日)
4. tiledlayer设计 (9月17日)
5. tank行动,按键响应编码 (9月18日)
6. 寻路简单调整,tilelayer与边界碰撞检测,冰滑动效果 (9月19日)
8. 子弹设计,子弹碰撞检测,实现完成,解决了最大的技术难题 (9月21日)(当前代码行数2355)
9. 敌方坦克设计,部分变量设计 (9月23日凌晨3点)(作品完成度70%)
10. 画面及相关大逻辑实现 (9月25日)(26,27,病了….牙痛啊,28日,到家整顿一日,29日开始)
11. 画面及相关大逻辑实现/相关画面转换/各种界面状态的转换(9月30日完成)
12. 道具实现,敌方坦克碰撞(10月3日完成)
13. 敌方坦克子弹设计(10月3日完成)
14. AI设计修正(10月4日完成)
4. 测试
1.收尾阶段(rms数据库, 分数加人, AI调整, 声音)(10月4日)
5. 添加地图
6. 完整测试
7. 扩展(待定)
最初期的策划案(9月12日)(后面没有加以修改….其实很多地方后期实现程序时修改过):
策划:
1.开始画面动画 5秒 按下任何键,直接显示界面
2.(刷屏显示 两边的灰色从上下两边分别向中间扩散) 关卡选择界面 14/60贞
3.播放音乐–> 主游戏窗口(从中央向两侧刷出屏幕,屏幕里有tiledlayer) 14/60贞
主游戏窗口:
1. 共39/60贞 星星状态 3/60每贞变化 从大到小,再到大显示
2. 共3秒 保护状态 每2/60贞变化 两幅图片变换
3. 共20秒 道具 每8/60贞变化 闪烁
4. 共10/60贞 大爆炸效果 每7/60贞变化 针序列:1-2-3-大的1-2- 4 — 12/60分值显示
5. 子弹 爆炸4/60贞 2次完事 1-2
1. 己方
总体: 走一步换一贞,速度都为2,普通子弹速度为5, 快速子弹速度为10
1级坦克,一次只允许发出一颗子弹,直到子弹消失,方可发出第二颗子弹 子弹速度慢,移动慢,但是速度比敌方慢速快
2级坦克,移动速度慢,子弹速度快
3级坦克,移动速度慢,子弹速度快 ,2个子弹
4级坦克,与上者类似,只是子弹,可以打铁皮
2. 敌方
两贞坦克 红白 每8/60贞变化
1级坦克 子弹速度慢 速度慢 100分 速度1
2级坦克 子弹速度慢 速度快 200分 速度3
3级坦克 子弹速度变快,速度与上面一致 300分 速度1
4级坦克 绿白 – 黄白 – 绿黄 – 白 子弹慢 速度慢 红色坦克,被击中一次,出道具,变为黄色 400分 速度1
3. 坦克碰撞
敌方坦克,开始就向下走,碰见障碍物就转头,子弹,一直射击,车轮一直转动,小几率中间发生转移
敌方坦克碰撞检测:
背景,边框,敌方坦克,我方坦克,我方子弹,老窝
我方坦克碰撞检测:
背景,边框,敌方坦克,我方坦克,敌方子弹,道具,老窝
敌方子弹碰撞:
我方子弹,我方坦克,背景,老窝
我方子弹:
敌方子弹,敌方坦克,背景,老窝
4. 道具
********时间纯属胡说八道************
五角星: 消失时间(永远不消失) 500分
加人: 消失时间(永远不消失) 至到吃完,或者是下一个道具 500分
铲子: 消失时间(20秒) 吃完基地直接转变, 持续时间(20秒),闪烁 15/60闪烁 闪烁5秒 这时不可以被击中
定时: 消失时间(40秒) 持续时间(10秒)
保护膜: 消失时间(10秒) 持续时间(10秒)
炸弹: 消失时间(25秒) (吃地雷不加分)
5. 层次
(从上到下的顺序)
道具,爆炸效果,分值,森林背景,坦克道具效果,子弹,我方坦克,敌方坦克,冰背景,水背景,铁背景,砖背景
背景层碰撞 layer[0] – layer[4]
总结:
唉….这次又是未果呢…估计是移植游戏的问题,除了程序,策划和美术都不是原创的,不过还好,体验了一把小型的游戏开发过程,从整理素材,策划案,代码设计,到编码,测试,这样一整套下来,真是费了不少功夫,也是到现在为止,做的最大的一个程序,那参数来回飞的厉害….代码架构上还是存在很大问题…很大的代码泥潭…游戏扩展上面估计做不了多少了….继续,设计模式…
要谢谢我的以前的星际战队的队长刘开,非常感谢他,那么支持,鼓励和帮助我,呵呵
还有我的两个舍友王腾和韩碧辉,帮我测试了FC的坦克出现序列,以保证逼真
还有就是老爸帮我画了所有的35关的关卡,谢谢他们,呵呵
做游戏:一般难 🙂
Trackback from your site.
(13)条评论
Wupei
| #
已经做了很久的游戏了….不好意思..已经不更新了
回复
云中月
| #
能发布240*320分辨率版本吗
回复
wupei
| #
呵呵,看到了,外国人写的,不错…
资源组织方式完全不同,代码架构也完全不同,人家的代码架构比我的要好得多的,学习学习,呵呵
谢谢关注
回复
yanzi
| #
有人公布了,代码原样上传了,很多,不过很好,跟你的游戏一个样.代码90%的,不过有点调用资源的差别,估计是你同是吧!你们太牛啦!呵呵!谢谢.http://www.j2megame.cn/viewthread.php?tid=5335
回复
wupei
| #
…..看以前的留言…
回复
Gabi
| #
本人查了很多资料,就是找不找这样完整的程序.可以的话能给我传一份吗?
邮箱是kimyounguck@163.com
回复
wupei
| #
我给大家找了个简单模拟坦克大战的例子
如果想参考,我想大家可以参考这个例子,附带源代码
下载地址: 打开
回复
wupei
| #
抱歉,源代码并未公布
如果公布的话,会公布在博客当中
如果有任何对本程序的疑问,可以在此留言或者给我发邮件
我会给您详细解答
回复
gougou
| #
我也想看看您的源码,作为我自己开始写的经验,谢谢,jakie_tao@yahoo.com.cn
回复
wupei
| #
不好意思,源代码并未公布
如果有任何对本程序的疑问,可以在此留言或者给我发邮件
我会给您详细解答
回复
燕子
| #
很好,很不错,可以发给我份吗?我的邮箱是yanziwei1103@163.com
回复
wupei
| #
创游杯作品….未果…坦克大战手机版(J2ME实现)程序发布
回复
明儿
| #
有目标,有计划
相信自己!我也相信你在不断进步,更相信胜利终究会属于你!
加油!!!
回复