现在基础班结束了,感觉还是学到蛮多东西的,最后的作业呢就是坦克大战项目。本人做的呢虽然不算那种很好的,但是因为我喜欢玩游戏所以我是站在一个玩家角度来做的这个项目的,所以还是会有一丢丢意思的。我本着造福大家,牺牲自我的精神特将源码,实现方法以及一些素材(UI,背景,音效)分享给大家,有需要的自己下,不要客气。(源码还不完善有bug,玩完一轮要重新开始运行,别连着玩有bug....)
简单概述下这个游戏的基本功能和特色吧:
基本功能已经实现要求的优秀级别的所有功能,额外附加了一些特殊功能,比如血条,道具,英雄联盟音效以及开始界面和内置4关卡;
特色:有3种道具,火腿:我方坦克捡到血量回满
炸弹:我方坦克捡到对面血量瞬降一半,同时敌方坦克换皮肤,速度加倍。
斧头:我方捡到超级子弹解锁,同时可以无间隙发射8颗子弹(等同于无敌加全屏技能)。
音效:沿用英雄联盟音效;按键切换为排位选人音效,开始背景音为排位背景音,每关开始有全军出击音效,通关有victory音效;击杀坦克有1杀,2杀,3杀,4杀,5杀,超神杀以及ace的音效。
技术方面其实没啥技术含量,只是很多和我一样的小白没注意到运用而已;
举例捡到斧头道具解锁的超级子弹来说明其他的度很简单有不懂的就自己看看源码吧:
超级子弹原理很简单,在窗口类里面的空格触发事件下面加一个开火的方法,和原来不同的是需要加一个for循环直接调用我方坦克的一个新的发射方
法,放入for循环循环8次,生成8个子弹,在子弹里面再加一个新的构造方法可以传入子弹的编号,然后在子弹的draw方法里面给每个子弹给予方向,
超级子弹就完成了,代码如下:
主窗口类里面的键盘监听事件
坦克类里面添加开火方法
子弹类里面添加构造方法及重写draw方法
坦克大战源码及素材打包如下(有需要的话就去下载吧):
(注意:源码方面还不完善有bug,玩完一轮要重新开始运行,别连着玩有bug....)
由于有图片及音效,导出来的工程压缩包有40m,超过上传限制只能切割成8部分上传。。。。。只需要将8个压缩包度下载下来解压一个就好了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |