pygame 之 精灵类

本文介绍了pygame中的精灵(Sprite)类,包括精灵的概念、常用变量的解释,如self.image和self.rect,以及如何更新精灵状态、添加到Group、删除和判断精灵存活的方法。通过实例展示了如何创建和操作精灵进行图形显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先举个例子:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值