超级玛丽小游戏(超级玛丽小游戏合集)

admin 2019-03-01 传奇手游三端 131 ℃ 请在这里放置你的在线分享代码
正文

编写一个经典游戏超级玛丽,如果用其他语言可能要上千行代码,而Python简洁的语法和强大的扩展库,使用Python最少只需两百多行就可完成,零基础都可以完成。最后写成的效果如下图:

python开发超级玛丽游戏使用的扩展库是 Pygame Zero(简称Pgzero) 安装:pip install pgzero

下面的几个步骤操作,轻松完成超级玛丽python开发

1、建立游戏场景

建立游戏窗口只需两行代码:

import pgzrun

pgzrun.go()

在Python自带的IDLE编辑器中输入上述代码,运行便可以看到一个游戏窗口

用下面两行代码可以调整一下窗口大小

import pgzrun

HEIGHT=640

WIDTH=1024

pgzrun.go()

为窗口设置一个背景颜色,可以在Pgzero提供的draw()函数中编写代码:

def draw():screen.fill((148, 146, 255))

上述代码用RGB颜色值(148, 146, 255)为游戏窗口生成了一个背景色,并自动显示出来,效果如下:

接下来定义一个文本文件,把游戏场景中各种物体的位置用字母记录下来:

然后在程序中编写代码来读取文件,在相应字符的位置处生成物体,并将生成的物体全部加入到列表objs中。

最后在draw()函数中加入显示物体的代码即可:

def draw():screen.fill((148, 146, 255))for obj in objs:obj.draw()

场景的最终显示效果如下:

2、创建游戏角色

Pgzero中生成一个游戏角色十分简单,只需一行代码即可:

mario=Actor("smario.png",(200,HEIGHT-120))

Actor类是Pgzero提供的角色类,调用该类的构造方法并传入角色图片和位置便可生成一个角色对象,同时在draw()函数中显示该角色即可。修改后的draw()函数如下:

def draw():screen.fill((148, 146, 255))for obj in objs:obj.draw()mario.draw()

现在看看效果:

3、场景与角色的交互

玛丽便能站在地面上,而且可以顶砖块、吃蘑菇、捡金币、踩怪物等等。

以吃金币为例,我们可以编写如下代码:

class Coin(Actor):

def react(self):

if mario.colliderect(self):

sounds.coin.play()

objs.remove(self)

mario.points=mario.points+1

我们首先定义了一个金币类Coin,它继承自Actor类。然后在其中定义了react()方法,该方法判断玛丽是否“吃”到了金币,如果吃到则先播放一个音效,接着将金币对象从objs列表中移除,最后为玛丽增加一个游戏积分。

可以看到,Pgzero为我们提供了非常便捷的API来实现游戏基础功能,比如判断玛丽是否吃到金币,这实际上是个碰撞检测问题,只需调用colliderect()方法即可,而不需要手动编制大量代码。同时播放声音也只用一行代码就可搞定。

通过以上3个步骤,一款超级玛丽游戏就开发成功了,最终运行效果如下:

python开发超级玛丽的源码下载链接:

https://aliyundrive /s/8uDL2tA3GyY

更多详细的开发过程可以参考《零基础入门Python游戏》一书,该书第7章《超级马里奥》,

本书将从零开始带领读者上手3个独立的Python小游戏的开发过程,包括《飞机大战》《俄罗斯方块》《超级马里奥》。这些游戏简单易学,可以帮助读者通过编写游戏的方式提高Python编程能力,极具趣味性,让朋友们边玩边学!

最后,如果想要用python开发出更多有趣的游戏,全面系统学习Pygame Zero可以参考《趣学Python游戏编程》一书,

该书通过十个经典游戏案例,深入浅出地介绍了游戏编程的基本原理,以及Pygame Zero的具体使用方法。《趣学python编程》语言轻松,通俗易懂,讲解由浅入深,力求将读者阅读和学习的难度降到最低。任何对计算机编程有兴趣的人或者首次接触编程的人,不论孩子还是成人,都可以通过阅读本书来学习python编程。

以上从python的一个经典小游戏开始,介绍了python零基础开发游戏的步骤,并 介绍了两本关于python游戏开发的书,可以给孩子或者正在学习编程的学生使用,当然,如果是高龄人士,也可以用来培养一个爱好,没事编写一些程序养生一下,

本文TAG:

网站分类
最近发表
标签列表
传奇手游发布网站