鱼C论坛

 找回密码
 立即注册
查看: 1897|回复: 6

local variable 'bullets' referenced before assignment

[复制链接]
发表于 2020-7-7 17:29:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
打飞机代码中,我跟着甲鱼写代码,写到这无论如何都不对,求大佬指点一下
跟着小甲鱼写的这一段:
if not(delay % 8):
                bullet_sound.play()
                if is_double_bullet:
                    bullets = bullet2
                    bullets[bullet2_index].reset((me.rect.centerx - 33,me.rect.centery))
                    bullets[bullet2_index + 1].reset((me.rect.centerx + 30, me.rect.centery))
                    bullet2_index = (bullet2_index + 2) % BULLET2_NUM
                else:
                    bullets = bullet1
                    bullets[bullet1_index].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,求助到底出了什么问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-7 18:28:12 | 显示全部楼层
在赋值前引用了局部变量 “bullets”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 18:41:28 | 显示全部楼层
你这是部分代码,没有用,你试着在代码前面加上 global bullets 试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-8 08:09:22 | 显示全部楼层
Twilight6 发表于 2020-7-7 18:41
你这是部分代码,没有用,你试着在代码前面加上 global bullets 试试看

我这是截取了其中一段,因为是写到这卡住了,我昨天试过了加global,但是会出现其他问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-8 08:10:34 | 显示全部楼层
Hello. 发表于 2020-7-7 18:28
在赋值前引用了局部变量 “bullets”

不知道咋办,把小甲鱼这部分视频翻来覆去看了好几遍,就是一模一样的,但我就是报错QAQ
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-5 15:37:20 | 显示全部楼层
这段代码加个缩进
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-31 12:20:37 | 显示全部楼层
请问这个问题解决了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 05:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表