我已经工作了大约2-3天就如何控制我的火速而且我找不到成功的方法。我在这里看到过类似/相同的问题,但我找不到我想要的答案。在我的游戏中我拥有它所以有一个玩家一个机器人,它的1v1战斗。
我的子弹课程:
class Bullet(pygame.sprite.Sprite):
change_y = 0
list = pygame.sprite.Group()
def __init__(self, y):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface([6,6])
self.image.fill(BLACK)
self.rect = self.image.get_rect()
self.change_y = y
Bullet.list.add(self)
def update(self):
self.rect.y += self.change_y
我的激活/射击动作:
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
if self.player.ammo > 0:
self.shooting = True
elif event.type == pygame.KEYUP and event.key == pygame.K_SPACE:
self.shooting = False
if self.shooting == True:
self.bullet = Bullet(-45)
self.bullet.rect.x = self.player.rect.x + 11
self.bullet.rect.y = self.player.rect.y - 14
Bullet.list.add(self.bullet)
for bullet in Bullet.list:
if self.player.ammo > 0:
self.player.ammo -= 1
我还是比较新的。我尝试了很多不同的方式,一些非常愚蠢的方式。如果你需要,我可以给你更多的代码。任何帮助都很棒,很明显我希望我的子弹在两次射击之间有更多的时间,因为截至目前它每秒射出60发子弹。此外,我在这里,我也可以请求重新加载的帮助,因为现在我所拥有的是
if self.player.ammo == 0:
self.shooting = False
self.player.ammo = 30
答案 0 :(得分:0)
您可以测量拍摄之间的时间。
例如:
if self.shooting == True:
if time.Time() - self.last_shot > self.shot_delay:
self.bullet = Bullet(-45)
self.bullet.rect.x = self.player.rect.x + 11
self.bullet.rect.y = self.player.rect.y - 14
Bullet.list.add(self.bullet)
self.last_shot = time.Time()
for bullet in Bullet.list:
if self.player.ammo > 0:
self.player.ammo -= 1
self.shot_delay
是您想要的延迟。