读书人

单机版坦克大战游戏小结

发布时间: 2012-10-26 10:30:58 作者: rapoo

单机版坦克大战游戏总结

? ? ? ? ? ?刚刚做完坦克大战的游戏,不能说做完,功能还很简单,还有一些Bug。花了两个下午,一个晚上,因为时间很紧张,(主要怪自己,在别人工作的时候,我在去杭州了单机版坦克大战游戏小结,不过,玩得很开心,虽然来了"梅超风"单机版坦克大战游戏小结),这里只是简单的一些总结,整理一下自己的思路,Bug,以后会慢慢修复。单机版坦克大战游戏小结

?

? ? ? ?写一个游戏,首先要定义的自己的规则,搞清楚自己到底要实现的东西有哪些。然后,一点一点理清自己的思路。搞清楚,为了达到目的,我要做哪些事情,先后顺序是什么。

?

? ? ? ?一开始突然要写坦克,作者也是一头蒙。后来,静下心来,慢慢分析,先学会玩坦克大战这个游戏,搞清楚了游戏规则,然后开始模仿。要写这个游戏,首先,要有一个JFrame。要有自己的坦克和敌方坦克。坦克要会发射子弹。坦克要能够在JFrame上运动。要判断输赢,那么还要自己定义输赢标准。 这些是主干,其他的可以一点一点的加。

?

?

? 一:界面,800*700的JFrame。

?

?


单机版坦克大战游戏小结

?

?

?

?

?

? ? ? ? 背景图片是我截取的一个游戏的,然后一小块,一小块拼起来的,足足拼了400多块(因为这个背景图片很有战场的感觉)。

? ? ? ? ?然后,就是设计地图了。创建一个Map文件,用数字来表示地图上的事物。然后,读取文件,用到了前几天的文件的读取,将字符串转换成数组元素,用数组来存储。遍历数组,数组不同的元素,则绘制相对应的事物。

?

? ??//根据数组,画出地图

 * 随机选择前前进的方向 */public void initDirection() {Random ran = new Random();int dir = ran.nextInt(4);if (dir == 0) {up = true;}if (dir == 1) {down = true;}if (dir == 2) {left = true;}if (dir == 3) {right = true;}}

?

?

? ? 四:子弹类

? ? ? 己方子弹,和敌方子弹,创建方法时相同的,里面实现的方法也有很多相同的地方,其实可以合并写在一个类里。但,一开始的时候,我为了理清自己的思路,把他们一一的分开了。

? ? ?子弹的运动方向和位置的定义,是与坦克运动方向,位置相关的,因此可以用坦克的坐标来表示子弹的坐标,坦克的方向就是子弹的方向。子弹类里,会有一些方法,比如,子弹击中了墙,那么墙就要消失;子弹击中对方坦克,坦克消失,等等。

?

?

? ?五:实现爆炸效果

? ?爆炸的实现其实就是连续的绘制图片。将图片保存在数组里,然后遍历绘制。爆炸的产生是在子弹打中坦克的情况的产生的,因此,此时的子弹是setLive(false)的,调用爆炸方法即可。

?

??六:Config类

? ? ? 因为要绘制很多图片,为了方便,可以将要用到的素材放到Config类里。

?

?

? ? ? 以上只是我暂时的结果。还有很多要完善的地方,比如,敌方坦克不可以重合,由于敌方坦克运动方向是随机的,坦克可能会原地打转的问题,等等,很多。我会继续完善的。

?

1 楼 jcs130 2011-08-11 图挂了…… 2 楼 Jonathan樊 2011-08-11 jcs130 写道图挂了……
我先把图放到QQ相册里,得到网络地址,才能上传啊~~不然,怎么办呢?

读书人网 >编程

热点推荐