另外能不能使得敌我单位每个人攻击之间有属于自己的间隔时间,,而不是拖慢屏幕显示的时间间隔。谢谢!
用碰撞检测,根据碰撞检测返回的结果改变对应精灵的行为
攻击间隔你可以做个update写在精灵类里面
类似
attack_time = 30#假设每30帧攻击一次
class Entity(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
pass#略
self.attack_timer = 0#初始化timer
def update(self):#重写特殊方法,可以被精灵组从group层面直接调用
self.attack_timer += 1
#到达帧率时调用攻击,现在这种写法无论遇不遇到敌人都会攻击,可以通过碰撞检测更改行为逻辑
if self.attack_timer >= attack_time:
self.attack()#攻击
self.attack_timer = 0#重置
def attack(self):
pass#略
...
pygame.init()
gameTick = pygame.time.Clock()#帧率初始化
entity_pool=pygame.sprite.Group()#实体精灵组,在实体生成部分将生成的实体add进来
while game_run:#游戏主逻辑
gameTick.tick(60)#帧率设置
entity_pool.update()#刷新攻击冷却时间