【发布时间】:2015-01-23 16:52:01
【问题描述】:
我已经工作了大约 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
【问题讨论】:
-
请始终使用 4 空格缩进。否则看你的代码就没意思了。
-
你应该接受我对 Pygame 标签的编辑。
-
很抱歉,当我 c/p 时发生了这种情况,实际上我在看到 xD 时就修复了这个问题
标签: python pygame python-2.6