Pygame Sprite类2
update方法重写
Sprite类的方法与 screen的Sprite方法不同.
这个方法只是一个改变实例的位置与形状的方法.即Sprite的update其实是类的实际业处处理的方法
# 创建:2021/1/24 8:46 下午
# 邮箱:slxxf000@163.com
# 微信: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()方法是用来解决角色的变化情况的.
包括位置的变量,外形的变化等.