local variable 'bullets' referenced before assignment
打飞机代码中,我跟着甲鱼写代码,写到这无论如何都不对,求大佬指点一下跟着小甲鱼写的这一段:
if not(delay % 8):
bullet_sound.play()
if is_double_bullet:
bullets = bullet2
bullets.reset((me.rect.centerx - 33,me.rect.centery))
bullets.reset((me.rect.centerx + 30, me.rect.centery))
bullet2_index = (bullet2_index + 2) % BULLET2_NUM
else:
bullets = bullet1
bullets.reset(me.rect.midtop)
bullet1_index = (bullet1_index + 1) % BULLET1_NUM
#检测子弹是否击中
for b in bullets:
if b.active:
b.move()
screen.blit(b.image,b.rect)
enemy_hit = pygame.sprite.spritecollide(b,enemies,False,pygame.sprite.collide_mask)
if enemy_hit:
b.active = False
for e in enemy_hit:
if e in mid_enemies or e in big_enemies:
e.hit = True
e.energy -= 1
if e.energy == 0:
e.active = False
else:
e.active = False
我对照了很多次,跟小甲鱼写的一模一样,但是就是报错UnboundLocalError: local variable 'bullets' referenced before assignment,求助到底出了什么问题 在赋值前引用了局部变量 “bullets” 你这是部分代码,没有用,你试着在代码前面加上 global bullets 试试看 Twilight6 发表于 2020-7-7 18:41
你这是部分代码,没有用,你试着在代码前面加上 global bullets 试试看
我这是截取了其中一段,因为是写到这卡住了,我昨天试过了加global,但是会出现其他问题{:5_107:} Hello. 发表于 2020-7-7 18:28
在赋值前引用了局部变量 “bullets”
不知道咋办,把小甲鱼这部分视频翻来覆去看了好几遍,就是一模一样的,但我就是报错QAQ 这段代码加个缩进
for b in bullets:
if b.active:
b.move()
screen.blit(b.image,b.rect)
enemy_hit = pygame.sprite.spritecollide(b,enemies,False,pygame.sprite.collide_mask)
if enemy_hit:
b.active = False
for e in enemy_hit:
if e in mid_enemies or e in big_enemies:
e.hit = True
e.energy -= 1
if e.energy == 0:
e.active = False
else:
e.active = False 请问这个问题解决了吗
页:
[1]