创建函数,根据参数设置精灵依赖关系,并根据按下的键更改图像,例如:
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player, self).__init__()
self.surf_horizontal = pygame.image.load("Sprites/Characters/tile_0002.png").convert()
self.surf_horizontal.set_colorkey((0, 0, 0), RLEACCEL)
self.surf_horizontal = pygame.transform.scale(self.surf_horizontal, [25, 25])
self.surf_vertical = pygame.image.load("Sprites/Characters/tile_0003.png").convert()
self.surf_vertical.set_colorkey((0, 0, 0), RLEACCEL)
self.surf_vertical = pygame.transform.scale(self.surf_vertical, [25, 25])
self.surf = self.surf_horizontal
self.rect = self.surf.get_rect(center=(-SCREEN_WIDTH + 50, SCREEN_HEIGHT,))
# when the sprite is going up or down
def change_image(self, image_type):
if image_type == "vertical":
self.surf = self.surf_vertical
else:
self.surf = self.surf_horizontal
# Move the sprite based on user keypresses
def update(self, pressed_keys):
image_type = "horizontal"
if pressed_keys[K_UP]:
self.rect.move_ip(0, -5)
image_type = "vertical"
if pressed_keys[K_DOWN]:
self.rect.move_ip(0, 5)
image_type = "vertical"
if pressed_keys[K_LEFT]:
self.rect.move_ip(-5, 0)
if pressed_keys[K_RIGHT]:
self.rect.move_ip(5, 0)
self.change_image(image_type)