欢迎光临散文网 会员登陆 & 注册

21步学会写《推箱子》

2023-09-12 20:05 作者:英雄哪里出来  | 我要投稿

前言

       本期视频点赞目标达成,想学习的同学可以跟着这篇文章进行学习。

       如果光看文字出现各种报错,可以进知识星球(英雄算法联盟),星球内部提供星主的亲自答疑,可以扫本文文末的免费体验券。由于B站文章的代码格式不支持,所以代码的部分采用图片的方式,这样也可以避免大家复制粘贴,逼着大家自己写,何尝不是一种倒逼。

       B站不能上传文件,所以源码可以在公众号:夜深人静写算法,回复 pushbox 直接获取。才发现好久没打开B站了。

第01 - 04步、安装插件

       这部分内容和游戏本身的代码无关,没有这个插件我们也能写出代码,所以选学,想要安装的B友可以直接前往视频观看教程:Pygame 推箱子视频教学


第05步、图片制作

       进入 res 目录,右键新建图片文件,点击编辑,设置图片大小,先做一个空地,命名为 floor.png 像这样;

再做墙壁,简单画几条线,命名为 wall.png 像这样;

       然后是箱子,直接拖一个圆角矩形,放上一个开关,就非常的逼真了,命名为 box.png 像这样;

接着做一个框框,代表箱子的目的地,命名为 goal.png 像这样;

最后当然要制作我们的主角了,想必你也已经猜到了,命名为 player.png。


         分步视频:https://t.zsxq.com/12dPSFmwn


第06步、常量定义

       新建一个 const.py 文件,用来存储常量,定义游戏窗口宽高:

定义每个游戏内精灵的尺寸,像这样:

定义四个方向分别为:

定义游戏内的精灵类型:

最后对于每个字符,映射到它应有的资源上:

         分步视频:https://t.zsxq.com/11fEK7Idj


第07步、地图制作

       新建一个文件夹data,再建一个文件夹level,新建一个文件 1.x 作为第一关,第一行代表几行几列,然后用字符,来代替地图元素像这样:

     2.x 作为 第二关;3.x 作为第三关;4.x 作为第四关,想做几关,就做几关,一气呵成,没有技巧,全是感情,唯手熟尔,你也可以。

         分步视频:https://t.zsxq.com/11XkkYuAK


第08步、地图加载

      在 level.py 中,新建一个 Level 的类,然后定义一个 map 代表地图的二维数组,把一些动态的物体像 目的地、箱子、玩家,存储在这个 dynamicObj 中,并且存储地图的行数 row 和列数 col,调用 LoadLevel 接口来实现地图的加载。

      然后实现这个 LoadLevel 函数,先清空地图、目的地、箱子、玩家 的信息,然后根据 level 来读取对应的关卡文件,第一行读取行数和列数,从第二行开始,遍历每一行的字符,如果是箱子,则当前位置是 FLOOR,并且把坐标放进箱子列表中;如果是玩家,则当前位置也是 FLOOR,并且把坐标放进玩家列表中;如果是目的地,则当前位置也是 FLOOR,并且把坐标放进目的地列表中;否则,直接把这个字符塞到map的当前行,行数加一。

         分步视频:https://t.zsxq.com/11uhIVlXG


第09步、游戏精灵

         分步视频:https://t.zsxq.com/11vg2W3fJ


第10步、地图渲染

         分步视频:https://t.zsxq.com/11Lqb9xrJ


第11步、动态物渲染

         分步视频:https://t.zsxq.com/11EdXlV5a


第12步、时间函数

         分步视频:https://t.zsxq.com/11CV14t5S


第13步、玩家移动

         分步视频:https://t.zsxq.com/118HdIXIO


第14步、碰撞判定

         分步视频:https://t.zsxq.com/11JaAFVoq


第15步、箱子判定

         分步视频:https://t.zsxq.com/11MK8N1Up


第16步、推箱子

         分步视频:https://t.zsxq.com/11PjNVnB3


第17步、结束判定

         分步视频:https://t.zsxq.com/11A38I88z


第18步、重置游戏

         分步视频:https://t.zsxq.com/11rxSa5NT


第19步、路径记录

         分步视频:https://t.zsxq.com/11cZLZt9F


第20步、自动推箱子

         分步视频:https://t.zsxq.com/11jet1q8v


第22步、胜负判定

         分步视频:https://t.zsxq.com/11B0cNLE3


英雄算法联盟免费体验券,免费扫码,可查看分步视频:


21步学会写《推箱子》的评论 (共 条)

分享到微博请遵守国家法律