You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1000 B
38 lines
1000 B
import random
|
|
from typing import Any
|
|
|
|
import pygame
|
|
from pygame.sprite import Sprite
|
|
|
|
|
|
# 道具类
|
|
class PowerBase(Sprite):
|
|
def __init__(self, ai_game):
|
|
super().__init__()
|
|
# 获取屏幕设置
|
|
self.screen = ai_game.screen
|
|
self.screen_rect = ai_game.screen.get_rect()
|
|
self.settings = ai_game.settings
|
|
|
|
def update(self, *args: Any, **kwargs: Any) -> None:
|
|
pass
|
|
|
|
|
|
class Prop(PowerBase): # 道具
|
|
def __init__(self, ai_game):
|
|
super().__init__(ai_game)
|
|
# 导入图片
|
|
self.type = random.choice(self.settings.prop_images_list)
|
|
self.image = self.settings.prop_images[self.type].convert()
|
|
self.image.set_colorkey(self.settings.BLACK)
|
|
self.rect = self.image.get_rect()
|
|
self.speed = 5
|
|
|
|
def update(self, *args: Any, **kwargs: Any) -> None:
|
|
self.rect.y += self.speed
|
|
if self.rect.top > self.screen_rect.height:
|
|
self.kill()
|
|
|
|
|
|
|