《pygame中Sprite类实现多帧动画》注-显示静态图片2-1

通过精灵类显示静态图片的效果如图1所示。

图1 精灵类显示静态图片的效果

1 精灵类介绍

在pygame中,精灵就是带有图像属性、位置属性以及行为方法的对象,通过它来控制屏幕上一切角色的动态。通过精灵类,可以(1)把图像和位置封装到一个对象(2)自动加入游戏世界中(3)更容易管理多个对象。

2 通过精灵类显示静态图片

2.1 精灵类的方法及属性

精灵类在pygame.sprite模块中定义,其名字为pygame.sprite.Sprite。该类包含三个主要方法__init__()、update()和draw(),两个主要属性image和rect。其中,__init__()方法用于类对应图片属性的初始化、update()方法用于更改类对应图片的属性、draw()方法用于显示类对应图片。image属性表示类对应的图片,rect属性表示类对应图片的位置及大小。

2.2 自定义精灵类的子类

在pygame编程框架代码中,自定义精灵类的子类MySprite,代码如图2所示。

图2 自定义精灵类子类MySprite的代码

从图1中可以看出,第18行代码制定了MySprite是pygame.sprite.Sprite类的子类;第19-22行重写了pygame.sprite.Sprite类的__init__()方法。第19行首先调用MySprite类的父类,也就是pygame.sprite.Sprite的__init__()方法进行初始化;第21行代码导入指定的图片,filepath是__init__()方法的参数,在定义MySprite类之前定义;第22行代码指定了图片的大小及位置,设置图片的中心位置(center)在窗口中央,SCREEN_WIDTH和SCREEN_HEIGHT是窗口的宽度和高度,在定义MySprite类之前定义,代码如图3所示。

图3 MySprite类所需变量的定义

相关链接1 python中类的相关知识,请参考《Python中类的使用1》

相关链接2 pygame中导入图片以及设置图片位置的相关知识,请参考《Pygame实现动画效果2-1》

相关链接3 pygame的框架代码请参考《从零开始学Python游戏编程22-Pygame库2》

注意1 显示静态图片时,无需重写Sprite类的update()方法和draw()方法,只需重写__init__()方法即可。

2.3 创建精灵

创建精灵,实际上就是创建MySprite类的实例,代码如图4所示。

图4 创建精灵的代码

其中,FILEPATH在图3中定义。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值