java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

可能是由于上学期期末的原因,加上开学以来一直蛮忙的,感觉很久没有写过博客了。今天,回顾下寒假期间做的线程游戏,也顺便谈谈自己的心得与体会。

首先我们是以一个简单的马里奥模型为背景,结合之前学习的多线程的知识,展开对线程游戏具体学习。首先,做游戏,必须要选择比较好的素材,素材对于一个游戏的主观评分是有很大影响的。其次,既然要获得好的素材,不可能千篇一律的从网上获得,而是要自己用Photoshop来p图,比如我,是将从网上找到的一组gif图分别按不同形状截图,再重新在ps里p出一个新的gif图片,这就是我的游戏里的人物模型,当然还有各种障碍物,都是我从网上找的图片,扣掉一些没必要的部分再将背景设置透明化从而获得所有的障碍物。

有了素材之后,真正的工作才算正式开始。首先我应该理清楚我的游戏玩法是什么,我这里做的是一款简单的跑酷类游戏,既人物不断往前跑,想方法躲避各种来自天上地下的障碍物,对操作还是有一定的要求的。那么,理清楚玩法之后,我应该分清楚了游戏里有哪些实际存在的东西。奔跑的人物对象和不断移动的障碍物这两类。本来想把地板也设为一类对象的,但之后我的处理有些不同,所以改完以后就没有这么做了,这个放在之后再说。既然分清楚有了哪些对象,那设计思路就很清晰明了了,简单的来说就是-——人在奔跑的过程中不断的躲避障碍物,当然为了丰富游戏的可玩性还可以添加一系列宝贝之类实现某些对人物有好的功能。

理清楚了游戏的设计思路,游戏的制作就很简单了——一个继承的窗体类,一个继承的面板类,一个人物类,一个障碍物类,一个键盘监听类。主要分为这5部分。当然这中间还涉及到地图该怎么写入的问题,我这里是写了一个ReadMap类给他一个静态方法,通过文件输入流把自己配置好的二维数组以数字的方式保存在文件中写入地图。这种方式下可以把障碍物和对应在二维数组中的位置完全匹配,从而实现了二维数组与实际障碍物一一对应的关系。我的这部分代码如下;

其次我觉得比较重要的就是对人物动作尤其是跳跃的处理和碰撞的检测问题,碰撞检测本来是想用二维数组的下标来比较的,后来调用了Rectangle的包含方法来判断的,人物跳跃动作则是给他加了一层线程,还有就是解决键位冲突的问题,因为本身的按键监听只能同时对一个按键监听,那么比如一起按左上就会产生问题,所以我定义了几个布尔型的变量作为按键的开关,当各种不同的条件,满足不同的监听,具体代码如下:

具体游戏运行图片如下,

学习心得java游戏

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。