Pygame Sprite类1

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)类的最基础的属性

猜你喜欢

转载自blog.csdn.net/weixin_41810846/article/details/113062068
今日推荐