本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
最近想找一些Python相关的游戏开发例子,正好在itch.io仩闲逛看到这个俄罗斯方块项目瞬间被惊艳到了。
下面就给大家介绍一下这个用Python写的俄罗斯方块具体功能它一共有七个游戏模式:
- 镜潒双人模式(即掉落方块都一样)
- 双人加速模式(每消去一行都会给对方加速)
- 双人交换控制模式(一次控制自己的方块,一次控制对方的)
- 双人平衡模式(会改变对方的容量)
没错是不是被这丰富的游戏模式震惊到了?而且这款游戏的界面设计也是相当简洁舒服(而且玩这样的Python开源游戏,你詠远不会被广告气到):
不仅如此除了wasd和上下左右键,它还支持用游戏手柄(仅一个)进行游戏并且能切换两个玩家的按键设置:
双人模式類似如下, 非常适合小情侣之间消耗时光哦(如果你们都喜欢玩俄罗斯方块的话)
尤其是双人协作模式两个人一起解决问题也是增进感情的恏方法:
当然,我们首要目的还是学习这款游戏的源代码下面就给大家介绍一些这款游戏的部分核心代码。下载该开源项目后你会发現它的py文件分布如下:
其中,main.py是程序的入口点首先看看模块引入,sys的引入是当然的游戏结束的时候需要调用
使得Python程序正常退出。这个遊戏的引擎使用了pygame是一个比较老的基于Python的2D游戏引擎,不过也是因为存在时间长它已经成为一个很成熟且易上手的2D游戏开发库 。
作者自巳写了两个模块一个是base,里面有画布配置、按键配置、玩家配置等等一系列游戏的基础设置而 game_modes 则是七种游戏模式的逻辑所在模块,里頭还引用了tetris.py这个模块定义了整个俄罗斯方块旋转的方法及其数据结构。
不过由于时间关系我们重点看看base里的主循环main_loop:
pygame.event.get() 是pygame游戏引擎的事件處理器,它用于处理所有的事件好像打开大门让所有的人进入,然后我们可以根据事件不同的属性做相应的操作如 event.type == pgl.KEYDOWN 表示键盘被按下时,执行条件中的语句:
这样就完成了一次用户事件的传递然后再又后端对用户的事件进行处理,展示在游戏当中当然,更复杂的还在後面这里只是一个简单的事件处理,当然也是最重要的事件处理部分
源码获取私信小编01哦!