pygame 精灵

Pygame精灵

pygame.sprite.Sprite是pygame实现的一个类,使用是需要继承,扩展自己的方法。精灵就是屏幕上的一个元素,可以是图片或者形状,可以移动交互。

属性和方法

  • self.image
    指示精灵的内容,self.image = pygame.image.load() 显示对应的图片。sulf.image = pygame.Surface([x,y])指示该精灵的大小,self.image.fill()填充颜色。
  • self.rect
    self.rect = self.image.get_rect() 获取image矩形区域。self.top、self.bottom、self.right、self.left指示矩形的上下左右的位置。
  • self.update() 刷新精灵
  • self.add() 在精灵组添加精灵
  • self.remove() 精灵组内移除精灵
  • Sprite.kill() 移除所有精灵
  • Sprite.alive() 判断精灵属于属于精灵组

精灵组

pygame.sprite.Group() 创建精灵

检测精灵之间碰撞
  • pygame.sprite.collide_rect() 矩形碰撞
  • pygame.sprite.collide_circle() 圆碰撞
  • pygame.sprite.collide_mask() 像素遮挡
检测精灵和精灵组之间的碰撞

pygame.sprite.spritecollide(sprite, sprite_group, bool),第三个参数如果为True会删除所有冲突的精灵

精灵组之间的碰撞

pygame.sprite.groupcollide()

屏幕加载精灵例子

import pygame


class Tree(pygame.sprite.Sprite):
    def __init__(self, image, initial_position):
        self.image = pygame.image.load(image) # 加载图片
        self.rect = self.image.get_rect() # 获取图片大小
        self.rect.topleft = initial_position # 指定图片位置


if __name__ == '__main__':
    pygame.init()
    screen = pygame.display.set_mode((400, 400))
    filename = "1.png"
    init_pos = (100, 100)
    tree = Tree(filename, init_pos)
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                exit()
        screen.fill((255, 166, 77))
        screen.blit(tree.image, tree.rect)
        pygame.display.update()

在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的天才女友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值