先举个例子:
import pygame
class Block(pygame.sprite.Sprite):
# 构造函数,传入方块的颜色,以及它x,y的坐标
def __init__(self, color, width, height):
# 调用父类(Sprite)构造函数
pygame.sprite.Sprite.__init__(self)
# 创建块的图像,并用颜色填充它,这也可以是从磁盘加载的图像。
self.image = pygame.Surface([width, height])
self.image.fill(color)
# 获取具有图像尺寸的矩形对象
# 通过设置rect.x和rect.y的值来更新此对象的位置
self.rect = self.image.get_rect()
if __main__ == '__main__':
pygame.init()
block = Block((255,0,0), 30, 40)
blackground = pygame.display.set_mode((200, 100))
blackground.blit(block.image, block.rect)
pygame.display.update()
一、精灵是什么
精灵就是一个具有大小,颜色,图案,可以移动的图形,并且可以与其他图形对象交互。
精灵图像可以如上面代码所示用pygame绘制的函数图像,
self.image = pygame.Surface([width, height])
self.image.fill(color)
也可以是本来就有的图像文件:
# -* utf-8 *-
import pygame
import sys
from pygame.locals import *
# 获取磁盘里的图像
blockimag = pygame.image.load("../image/brick.png")
class Block(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
# 从磁盘加载的图像。
self.image = blockimag
self.rect = self.image.get_rect()
block = Block()
windossurface = pygame.display.set_mode((200,100))
windossurface.blit(block.image, block.rect)
运行结果
二、Sprite中的常用变量
1)self.image 变量负责要显示图片的各个属性,图片的大小
self.image = pygame.Surface([width, height])就表示了这个精灵是一个长为height,宽为width的矩形,
self.image =pygame.image.load("…/image/brick.png")就表示该精灵调用显示brick.png这张图片。
而self.image.fill(color)表示这个精灵图片所要填充的颜色,代码段1就对矩形填充了红色。
2)self.rect 负责在哪里显示,self.rect = self.image.get_rect()获得精灵图片矩形的区域(以(0,0)为起点,width和height为图像尺寸),然后使用self.rect.topleft = (x, y)(self.rect.topright, self.rect.bottomleft, self.rect.bottomright均是元组) 来设定图片位置,
也可以使用(rect.left, rect.top, rect.right, rect.bottom) 来设定图片位置
3) self.update 更新精灵行为状态
4)Sprite.add 将精灵添加到Group中
5)Sprite.remove 将精灵从当前所属的Group中删除
6)Sprite.kill 将精灵从包含它的所有Group中删除
7)Sprite.alive 判断精灵是否属于任意一个Group