Pygame Sprite类2

Pygame Sprite类2

update方法重写

Sprite类的方法与 screen的Sprite方法不同.
这个方法只是一个改变实例的位置与形状的方法.即Sprite的update其实是类的实际业处处理的方法

# 创建:2021/1/24 8:46 下午 
# 邮箱:[email protected]
# 微信:slxxfl
# 微信公众号:A卫隆少儿编程
# 格言:给自己的生活增加一份向上的力,每都进步一点点

import pygame
import sys
class Ball(pygame.sprite.Sprite):
    def __init__(self, screen, radius):
        self.surface = pygame.Surface((2*radius, 2*radius))
        pygame.draw.circle(self.surface, "red", (radius, radius), radius)
        sw, sh = screen.get_size()
        self.rect = pygame.Rect(sw//2-radius, sh//2-radius, 2*radius, 2*radius)


    def update(self):
    # 将位置矩形的左边往右移:其实就是右移.
        self.rect.left += 1

pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Sprite类2")
b = Ball(screen, 100)

screen.blit(b.surface, b.rect)
clock = pygame.time.Clock()
pygame.display.update()
while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

	# 每一帧调用一次,即每一帧往右移一个单位
    b.update()
	
	# 更新新的图形位置
    screen.fill("black")
    screen.blit(b.surface,b.rect)
    pygame.display.update()
    clock.tick(60)

这样我们就用Sprite()类来实现了球的右转.
Sprite类的优势会随着我们的学习变得更加明显.

后记

Sprite的update()方法是用来解决角色的变化情况的.
包括位置的变量,外形的变化等.

猜你喜欢

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