精灵和精灵组
在之前的案例中,图像加载,位置变化,绘制图像都需要程序员编写代码分别处理;
为了简化开发步骤,pygame提供了两个类
pygame.sprite.Sprite----存储图像数据image 和位置rect的对象;
pygame.sprite.Group
派生精灵子类:
1)新建plane_sprite.py文件;
2)定义GameSprite继承字pygame.sprite.Sprite
注意:
如果一个类的父类不是object;在重写初始化方法时,一定要先super()一下父类的__init__方法;
保证父类中实现的__init__代码能够被正常执行;
GameSprite
image
rect
speed
init(self,image_name,speed = 1);
update(self);
属性:
image精灵图像,使用image_name加载;
rect精灵大小,默认使用图像大小;
speed精灵移动速度,默认为1;
方法:
update:每次更新屏幕时在游戏循环内调用;
让精灵的self.rect.y += self.speed
提示:
image的get_rect()方法,可以范胡pygame.Rect(0,0图像宽,图像高)的对象
#精灵和精灵派生类;
import pygame
class GameSprite(pygame.sprite.Sprite):
def __init__(self,image_name,speed = 1):
#调用父类的初始化方法
super().__init__()
#定义对象的属性
self.image = pygame.image.load(image_name