gpt4 book ai didi

python - 当我在 pygame 中打印一些东西时,一个错误消失了

转载 作者:行者123 更新时间:2023-12-04 10:04:45 25 4
gpt4 key购买 nike

我知道标题不是很清楚,但我不知道我还能说什么。

我有一个玩家在攻击,当他完成攻击时,我开始计时 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




如果程序的这一部分有任何不清楚的地方,请告诉我,我会尽力解释。谢谢你的帮助 :)

最佳答案

方法between_two_attacks必须在 self.can_attack 的状态之前被调用被检索。 self.can_attack设置在 between_two_attacks .如果未调用该方法,则 self.can_attack永远不会变成True .
当您这样做时print(self.between_two_attacks()) , self.between_two_attacks()叫做。

此外,该方法可以简化:
self.can_attack如果 self.after_attack_max == 0,则必须设置或者如果当前时间大于 self.after_attack_max .
self.can_attack设置然后计算重新启动计时器。如果未设置,则必须对其进行评估。最初 self.after_attack_max是 0。如果当前时间大于 self.after_attack_max ,必须允许攻击并且必须再次启动计时器:

def between_two_attacks(self):

current_time = pg.time.get_ticks()
if self.can_attack:
self.after_attack_max = current_time + 1000

elif current_time > self.after_attack_max:
self.can_attack = True
self.after_attack_max = current_time + 1000

注意, self.after_attack_max仅设置在 between_two_attacks , 不要在其他任何地方重置它。

关于python - 当我在 pygame 中打印一些东西时,一个错误消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61644776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com