基于python的推箱子游戏课程设计,一款推箱子的游戏
开发工具Python版本:3.6.4
相关模块:
Pygame模块;
以及Python自带的一些模块。
在环境中构建和安装Python,并将其添加到环境变量中。pip可以安装所需的相关模块。
游戏简介原理简介
经典的推箱子游戏是一个来自日本的古老游戏,目的是训练你的逻辑思维能力。在小仓库里,要求把木箱放在指定的位置。如果你不小心,箱子将无法移动或通道将被堵塞。所以你需要巧妙地利用有限的空间和通道,合理安排移动顺序和位置,才能顺利完成任务。
控制方式:
键控制角色的动作,r键重新开始这一关。
逐步实现:
Step1:定义游戏精灵类
由于游戏涉及碰撞检测,我们先定义一些游戏精灵,包括推箱子的人,箱子,墙,目标位置指示器。
首先,我们来定义一下推箱人的精灵类:
他需要有移动的能力。这里设置了一个模拟动作的选项,通过模拟动作来判断他是否可以上/下/左/右移动。
因为地图上的其他东西性质相似,所以我们把它们定义为同一个精灵类(T_T其实性质相似,但是感觉需要区分人和物):
其中,箱子需要有移动的能力,其他的不能。模拟移动选项的功能与之前类似。
Step2:定义游戏地图类
这里我们定义了一个游戏地图类,目的是用这个类创建任何游戏地图。因此,这个类应该能够添加和保存游戏元素(人、墙、盒子等。)并在屏幕上画一张地图。同时你也要带一个方法来确定这个地图上的箱子是否都送到了指定的位置(方便切换关卡):
Step3:定义游戏界面类
游戏接口类负责解析关卡文件夹下游戏各关卡的地图文件,并使用游戏地图类创建和显示游戏地图:
同时由于游戏地图覆盖了游戏窗口界面,这个类需要增加根据人物位置滚动游戏地图的功能:
Step4:定义某关的游戏主循环
循环主要负责实例化游戏接口类,并根据按键检测的结果对游戏接口类执行一些操作:
角色移动的逻辑是:
如果移动目标位置为空,则该人移动;如果你击中盒子,盒子可以和人同向移动一格,那么人和盒子都会移动;在其他情况下,人和箱子不能移动。
Step5:定义游戏开始、切换和结束界面
很简单,给源代码就行了。
开始界面:
切换接口:
结束接口:
Step6:实现游戏主函数
只需将所有接口连接在一起:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。