线程小游戏制作的心得与体会

       可能是由于上学期期末的原因,加上开学以来一直蛮忙的,感觉很久没有写过博客了。今天,回顾下寒假期间做的线程游戏,也顺便谈谈自己的心得与体会。
      首先我们是以一个简单的马里奥模型为背景,结合之前学习的多线程的知识,展开对线程游戏具体学习。首先,做游戏,必须要选择比较好的素材,素材对于一个游戏的主观评分是有很大影响的。其次,既然要获得好的素材,不可能千篇一律的从网上获得,而是要自己用Photoshop来p图,比如我,是将从网上找到的一组gif图分别按不同形状截图,再重新在ps里p出一个新的gif图片,这就是我的游戏里的人物模型,当然还有各种障碍物,都是我从网上找的图片,扣掉一些没必要的部分再将背景设置透明化从而获得所有的障碍物。
     有了素材之后,真正的工作才算正式开始。首先我应该理清楚我的游戏玩法是什么,我这里做的是一款简单的跑酷类游戏,既人物不断往前跑,想方法躲避各种来自天上地下的障碍物,对操作还是有一定的要求的。那么,理清楚玩法之后,我应该分清楚了游戏里有哪些实际存在的东西。奔跑的人物对象和不断移动的障碍物这两类。本来想把地板也设为一类对象的,但之后我的处理有些不同,所以改完以后就没有这么做了,这个放在之后再说。既然分清楚有了哪些对象,那设计思路就很清晰明了了,简单的来说就是-——人在奔跑的过程中不断的躲避障碍物,当然为了丰富游戏的可玩性还可以添加一系列宝贝之类实现某些对人物有好的功能。
     理清楚了游戏的设计思路,游戏的制作就很简单了——一个继承的窗体类,一个继承的面板类,一个人物类,一个障碍物类,一个键盘监听类。主要分为这5部分。当然这中间还涉及到地图该怎么写入的问题,我这里是写了一个ReadMap类给他一个静态方法,通过文件输入流把自己配置好的二维数组以数字的方式保存在文件中写入地图。这种方式下可以把障碍物和对应在二维数组中的位置完全匹配,从而实现了二维数组与实际障碍物一一对应的关系。我的这部分代码如下;
其次我觉得比较重要的就是对人物动作尤其是跳跃的处理和碰撞的检测问题,碰撞检测本来是想用二维数组的下标来比较的,后来调用了Rectangle的包含方法来判断的,人物跳跃动作则是给他加了一层线程,还有就是解决键位冲突的问题,因为本身的按键监听只能同时对一个按键监听,那么比如一起按左上就会产生问题,所以我定义了几个布尔型的变量作为按键的开关,当各种不同的条件,满足不同的监听,具体代码如下:

        具体游戏运行图片如下,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值