小游戏实践
推箱子V2.0大家好,我是努力学习争取成为优秀的Game Producer的路人猿,我们上期一起学习制作推箱子的简易V1.0版本,学习了如何响应用户的输入以及面对箱子的各种情况,今天我们把这个程序完善,制作V2.0~
接着上次的思路,我们做今天的任务有2个,第一个是把地图扩大到可以自己定义,第二个就是把“A、S、D”按键按下的反映做上。
我们上次的地图:
可以看出是3*6的形式,我们这次做真正推箱子游戏的第3关,因为我们的逻辑已经整理出来,所以地图就是简简单单的制作了。
我们新的地图是个6*8的矩阵,在程序中我们仍然是选择二维数组。
更改定义的常量,然后定义地图的内容,这样在drawMap()函数绘制地图时是新的地图。
地图绘制如下:
调试程序我们可以看到地图按照我们的想法绘制了出来。
接下来的就是完善W、A、S、D的功能。
我们可以先看W键的功能:
这是我们的思路,在UP的基础上的变化就是二维数组值的判断,先做S键对应的功能。
这个函数实现的功能就是向下移动,以及解决箱子问题。
然后做A键的功能:
这个函数可以实现小人向左移动,遇到墙静止或者空气可以移动的功能;
接着做D键的功能:
这个函数可以实现小球向右移动,这样就可以解决小人的上下左右移动了,一个比较完整的功能就出来了。
我们运行程序:
然后控制小人把箱子都放入目的地:
这样V2.0的推箱子就做完了。
最后做个总结,我们V2.0解决的问题是复杂地图的绘制以及“W、A、S、D”各个按键的功能,可以实现小人的上下左右的移动。如果你做完后会发现,还是有一些BUG,如箱子移上去后不能更改位置,不能按键重新开始游戏等等,不过这次我们解决的问题就是上面所述的功能,下次解决遇到的BUG吧~
关于全国计算机等级考试时间: