java版坦克大战加入背景音乐及背景图片

时间:2024-03-18 13:19:09

         前一阵学习完Java基础,想着练习一下,就写了个坦克大战练手,基本上是跟着马士兵老师的视频写的,写完以后感觉效果有点low,毕竟自己花费了很多时间敲这个,所以想加入背景图片及背景音乐,让它看起来稍微舒服那么一点点。    

        先看一下加完背景图片以后的效果图。个人比较喜欢足球,所以就加了张足球场地做背景图片。

java版坦克大战加入背景音乐及背景图片游戏效果

     可以随时更换背景图片

java版坦克大战加入背景音乐及背景图片游戏效果2

  下面是代码。添加在 paint( )方法中。 

java版坦克大战加入背景音乐及背景图片添加背景图片代码

     但是目前有一个小bug,就是用这个方法添加背景图片后,cpu利用率会增加很多,目前没想通原因。如果有朋友知道希望可以指点一下。

java版坦克大战加入背景音乐及背景图片正常运行游戏时的cpu

java版坦克大战加入背景音乐及背景图片添加背景图片后运行游戏时的cpu

 

图片上cpu突然开始攀升地方代表开始进行游戏。

下面开始添加背景音乐,先上代码。

java版坦克大战加入背景音乐及背景图片添加背景音乐代码

 

java版坦克大战加入背景音乐及背景图片在TankClient类中调用

       为什么类名要叫Music 2?因为有music1呀,而且写废了,那种改都不想改的级别。其实在添加背景音乐的时候费了很大劲才添加成功,第一次写完以后运行程序发现根本没声音,然后换了种方法,发现也不行。又换了种方法,还是没声音,这个时候意识到可能是自己其他地方出了问题。上网查资料,发现java只支持无损音乐,类似于.wav格式的。而MP3格式的java是不支持的。把格式转成MP3格式以后,运行程序,满心欢喜的等待着播放背景音乐,结果是他响了一下就没声音了。我在Music2中写了一个主函数试了一下,发现音乐可以正常播放完毕。但是在游戏调用的时候却只响一声。思考了一下,认为可能是只调用了一下然后就执行后面的任务了,决定单独起一个线程播放音乐。写完运行程序情况依然不变。Debug发现调用方法正常执行,这下就实在想不出原因。开始漫无目的的瞎试。过程中偶然感觉电脑有点卡,调出任务管理器发现在执行程序的时候CPU利用率陡然升高,而没添加背景图片以前不存在这样的问题。于是试着把添加背景图片的代码注释掉,运行游戏,背景音乐可以正常播放。

        前面的这些方法也是网上看看别人怎么写的,然后学着人家的样子,自己“临摹”的。

       所以目前的问题还是像我上文说的一样,添加背景图片以后cpu利用率升高很多。希望有朋友知道原因或者有什么意见可以说出来讨论一下。造成的结果是想要背景音乐就没有背景图片,想要背景图片就没背景音乐,或者配置高的电脑运行游戏也许两个都有。(硬生生的把一个简单的坦克大战小游戏需要的电脑配置提高到要运行大中型游戏的配置,我真有脸呀,,,)

    下面是没有添加背景图片运行的游戏的效果

java版坦克大战加入背景音乐及背景图片没有添加背景图片的游戏效果

   

       这里面就跟马士兵老师视频里教的一样,有墙(那两条黑色),还有大招。(对,我的坦克比对手大,子弹也比对手强,还有大招,就是这么脸皮厚)至于背景色为什么选绿色?假想坦克大战是在草地上进行的。

      放上music前一版的代码,不断的试错过程,有兴趣的可以看一下。中间有些内容自己都不知道写的啥,就删除掉了。

java版坦克大战加入背景音乐及背景图片已经抛弃的music第一版

    本人目前还是新人正在学习过程,代码写的也很稚嫩。如果有问题可以提出来,也是我进步的动力。