Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏

往期回顾

Python实现“小兔子和Bun”游戏

Python实现八音符小游戏

Python实现拼图小游戏

Python实现滑雪小游戏

Python实现经典90坦克大战

Python实现FlappyBird的小游戏

Python实恐龙跳一跳小游戏现

Python实现塔防小游戏

Python实现接水果和金币小游戏

Python实现简易版飞机大战小游戏

前言:

上班无聊用pyqt5写的写了个俄罗斯方块的小游戏,让我们愉快地开始吧~

效果

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第1张图片

开发工具

Python版本: 3.6.4

相关模块:

pyqt5模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

游戏规则:

由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。(ps百度百科)

控制方式:

←→键控制位置,↑键控制方向,空格键使板块快速下落到底部,P键暂停游戏。

逐步实现:

Step1:定义一个俄罗斯方块

首先,我们来定义一个俄罗斯方块类,其具体作用为利用小方块组成不同形状的板块:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第2张图片

为了便于获取某个俄罗斯方块内各个小方块的位置信息,我们再来定义一些获取其位置信息的类内方法,如下图所示:

image.gif

Step2:制作游戏主界面

我们将游戏进行中的数据记录与数据处理部分定义在内部板块类中,将游戏数据可视化定义在外部板块类中,具体实现如下。

(1)定义一个内部板块类:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第3张图片

我们可以在内部板块中操作当前可控制的俄罗斯方块向左/向右/向下(向下运动由系统自动操作)移动和快速坠落:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第4张图片

当然移动的时候要实时地判断当前可控制的俄罗斯方块是否已经“着陆”:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第5张图片

“着陆”后将当前可控制的俄罗斯方块并入到最下方那些不可再控制的俄罗斯方块中,并移除整行都有小方块的那些行(即完整的横条):

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第6张图片

然后创建新的俄罗斯方块:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第7张图片

循环往复。

(2)定义一个外部板块类

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第8张图片

其作用就是将内部板块类的实时数据信息用pyqt5模块实时地显示出来。

Step3:画个游戏侧面板

我们在游戏主界面右侧画个侧面板来实时地显示下一个俄罗斯方块的形状:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第9张图片

Step4:实现游戏主循环

定义俄罗斯方块游戏类并初始化:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第10张图片

其中游戏开始和游戏暂停的定义如下:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第11张图片

按键监听定义如下:

Python游戏开发,pygame模块,Python实现俄罗斯方块小游戏_第12张图片

然后调用执行它就OK啦:

图片

文章到这里就结束了,感谢你的观看,Python24个小游戏系列,下篇文章分享推箱子小游戏

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

⑥ 两天的Python爬虫训练营直播权限

All done~点赞支持下~详见个人简介或者私信获取完整源代码。。

你可能感兴趣的:(Python小游戏,python,游戏开发,pygame,模块,俄罗斯方块)