Python竟然还能写超级玛丽游戏,赶紧来围观!

Python可以干很多事情,常见的有Web后端开发,机器学习,数据分析等等。其实Python还能做游戏开发

看一下游戏图

有没有很亲切的感觉,相信很多80后对这款游戏都记忆犹新,一代人的记忆呀。

1.游戏的入口

作者的功力还是蛮深的,整个代码的框架很清晰。看一下它的启动函数:

是不是有一种很清爽的感觉,代码是用非常有名的游戏库pygame写的。这个库来做交互式的游戏非常有用,也很有趣。这里还加了cProfile库,不知道是不是用来做计算性能的。

我们来看看main函数里都写了啥:

  • 第一个from 引入了setup和tools, 主要是把一些初始化的工作在setup里面全部做完,读取一些配置文件和图片,声音到内存里面。
  • 第二个from 主要显示主菜单和主界面。
  • 第三个from主要是引入了一些常量的配置,比如颜色红色,黑色,白色,超级玛丽,蘑菇,砖块,硬币的一些状态常量。
  • run_it 是整个游戏的核心类,是用来做整个游戏的控制中心。
  • 作者设计了一个状态机,里面设计了5个主要的场景:主菜单,主界面,超时的界面,游戏结束的节目还有循环运行的界面
  • 最后运行run_it.main(),调用控制类里面的一个死循环函数,不断监听外部的event,来更新画布,整个的背景其实是循环的。

2.游戏的框架

整个游戏分resource和data两个部分:

  • resource部分主要是存放一些字体啊,图片啊,音乐和声音。
  • data部分主要分组件compents和逻辑处理control部分,这里的逻辑处理部分,作者非常巧妙的用状态机来设计。

一个游戏肯定有不同的角色:

  • 比如物体:砖块,城堡,硬币,旗杆,障碍物
  • 比如人物:超级玛丽,敌人(乌龟啥的)
  • 比如控制和记分:专门计算物体之间的碰撞,记录获得的金币
  • 其他:比如提示信息,快速跑等等.

3.游戏的按键控制

基本上跟经典的游戏的控制是一摸一样的,用s表示走,用a表示跳,下左右都是箭头来表示的.

keybinding = { ‘action’:pg.K_s, ‘jump’:pg.K_a, ‘left’:pg.K_LEFT, ‘right’:pg.K_RIGHT, ‘down’:pg.K_DOWN}

对Python感兴趣或者是正在学习的小伙伴,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,教你如何实现边学习边用Python赚钱的学习方式。点击加入我们的 python学习者聚集地

整个游戏我玩了几把还是很不错的,画片还是蛮漂亮的,操作也很流畅,尤其是超级玛丽在空中腾飞的姿势还是很帅的,刷刷刷的顶到云上!

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值