Pygame Sprite类1
Sprite: 精灵
pygame中为可见而专门设置的一个类
继承
# 从Sprite类继承,新建一个球的类
class Ball(pygame.sprite.Sprite):
pass
# 实例化一个球类
ball = Ball()
基本使用方法
- 构造函数
class Ball(pygame.sprite.Sprite):
def __init__(self, screen):
pass
参数说明:
screen: 这个实例将要绘制的屏幕
- 显示内容
import pygame
import sys
class Ball(pygame.sprite.Sprite):
def __init__(self, screen,w, h):
sw, sh = screen.get_size() # 获取屏幕的宽和高
# 新建一个surface对象,用来画图
self.surface = pygame.Surface((w,h))
# 在surface上画图
pygame.draw.ellipse(self.surface, "red", (0,0, w, h))
# 获取上述surface对象的rect (主要是为了宽和高,可以自己定义)
self.rect = self.surface.get_rect()
self.rect.center = sw//2, sh//2
# 上述两行代码可以合在一起写成:self.rect = pygame.Rect(sw//2-w//2, sh//2-h//2, w,h)
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("精灵类第一集")
b = Ball(screen, 100, 100)
screen.blit(b.surface, b.rect)
pygame.display.update()
代码解析:
在构造函数中:
- 新建一个surface对象,用来将内容画(加载)出来
- 新建一个rect对象,用来控制surface对象的位置(不是必须的,但是建议有一个这样的rect)
- 将实例对象的surface属性blit到screen上
总结
- 角色应该尽可能继承自Sprite类
- 因为Sprite的设计主要是为了可见角色,因此,要有一个surface对象来显示内容,一个rect对象用来控件在屏幕上显示的位置.
上述两个对象属性是精灵(Sprite)类的最基础的属性