Python 3.2 Ошибка "Unboundlocalerror: локальная переменная, на которую ссылается перед назначением" [дублировать]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python 3.2 Ошибка "Unboundlocalerror: локальная переменная, на которую ссылается перед назначением" [дублировать]

Сообщение Anonymous »

В настоящее время я делаю 2D -игру, в которой есть различные орудия, доступные для игрока, каждый из которых имеет разные скорости стрельбы. Когда я попытался реализовать различные скорости стрельбы для каждого пистолета, я получил эту ошибку: < /p>

if currentTime - bulletGap >= 2 and bulletType == "pistol": # 2 seconds between bullets
UnboundLocalError: local variable 'bulletGap' referenced before assignment
< /code>

Я определил "bulletgap = 0" и "стрельба = [true, true, true]", как выше функции, в которой они используются, однако я все еще получаю ошибку. Остальная часть кода (не работает) ниже. < /P>

def __init__(self, x, y, velx, vely, direction, bulletType):

currentTime = pygame.time.Clock()

if currentTime - bulletGap >= 2 and bulletType == "pistol": # 2 seconds between bullets
bulletGap = pygame.time.Clock()
gunFire[1] = True
return

elif currentTime - bulletGap >= 4 and bulletType == "shotgun": # 4 seconds between bullets
bulletGap = pygame.time.Clock()
gunFire[2] = True
return

elif currentTime - bulletGap >= 0.5 and bulletType == "automatic": # 0.5 seconds between bullets
bulletGap = pygame.time.Clock()
gunFire[3] = True
return

self.type = bulletType
self.direction = direction
self.velx, self.vely = velx, vely

for n in range(gunFire):

if gunFire[n] == True:

if direction == "north":

south = pygame.transform.rotate(Bullet.bulletImage[bulletType], 90)
self.image = pygame.transform.flip(south, False, True)

elif direction == "east":

self.image = pygame.transform.flip(Bullet.bulletImage[bulletType], True, False)

elif direction == "south":

self.image = pygame.transform.rotate(Bullet.bulletImage[bulletType], 90)

elif direction == "west":

self.image = Bullet.bulletImage[bulletType]

pygame.Rect.__init__(self, x, y, Bullet.width, Bullet.height)

Bullet.bulletList.append(self)
break
< /code>

Также (в качестве примечания), мне все еще нужно «возврат» после операторов IF? Они были там из какого -то предыдущего кода, который я написал, и я попытался убрать их, но я все еще получил такую ​​же ошибку.

Подробнее здесь: https://stackoverflow.com/questions/251 ... assignment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»