Я знаю, что заголовок не очень ясен, но я не знаю, что еще сказать.
У меня есть игрок, атакующий, и когда он заканчивает атаковать, я запускаю таймер на 1 секунду , поэтому мы должны подождать одну секунду, прежде чем атаковать снова. Это не сработало (мы могли атаковать только один раз), и я не знал почему, поэтому я добавил print(self.between_two_attacks())
, и все работало нормально, я мог атаковать, подождать одну секунду и атаковать снова.
Вот это программу, я не знаю, достаточно ли этого, потому что я понятия не имею, откуда взялась ошибка.
def between_two_attacks(self):
if self.after_attack_max == 0:
self.after_attack_max = pg.time.get_ticks() + 1000
print("set timer")
else:
after_attack = pg.time.get_ticks()
print("start timer")
if after_attack >= self.after_attack_max:
print("can attack again")
self.can_attack = True
self.after_attack_max = 0
def draw(self, win):
print(self.between_two_attacks())
if (self.attackcount + 1) >= 5:
self.attackcount = 0
self.between_two_attacks()
self.action = STAND_UP
self.arme = LIGHTSABER_OUT
self.stops_attacking = True
self.can_attack = False
if self.action == ATTACKING:
win.blit...
Run = True
While Run:
for event in pg.event.get():
if event.type == pg.KEYDOWN:
if event.key == pg.K_SPACE and player.can_attack == True:
player.action = ATTACKING
Если что-то неясно в этой части программы, просто скажите мне, и я Постараюсь объяснить. Спасибо за помощь :)