猫史档案馆


pygame画圆的bug

用户:宇宙中的星系宇宙中的星系查看:953 回复:5 评论:17 创建时间:2023-08-09T19:20:18


center_image

emm......这个问题咋解决?


回复

上一页第 1 页 / 共 1 页下一页
jczzcjczzc

你的size在初始化的时候是:

size[n]=(20,50)

调用时也肯定会是以元组的格式出来

如果你是按(直径,线宽)的形式定义的话,我想可能改成

pygame.draw. circle(screen, BLACK[n], locations[n], size[n][0], size[n][1])

可以解决这个bug

点赞0


评论

.........不行,我发上面了

你在改的时候改错了,4、5项是size里的,location不应该拆开

忘看了,有五项 ..............

一般来讲代码不能运行是85~90%人为疏漏的语法错误,剩下才是轮子和逻辑的问题

嗯嗯嗯嗯

emmm......你再看看吧...

。。。看你的代码是“房间里下落的雨滴”。如果你想要实心圆,你的size[n][1]应该是0,反之,其线宽size[n][1]应满足(size[n][1]<=size[n][0])==True 即第十三行代码(20,50)的更改(我读书少,盲猜你本来想写(50,20)或者别的,你的求助帖又没给注释……)

<换成左尖括号,可能是猫站的bug

一个字没听懂

你说的应该是报错的翻译吧?

报错的翻译我已经翻译在下面了

第十三行代码20、50互换

还是不行,你看上面吧


宇宙中的星系宇宙中的星系

center_image

翻译:

回溯(最近一次调用):
文件 “C:UsersLenovoDesktop房间平面图下落的雨点.py”,第 22 行,在<module>
pygame.draw.circle(screen, BLACK[n], locations[n],size[n][0],size[n][1])
索引错误:元组索引超出范围

点赞0


评论


jczzcjczzc

import pygame,random
pygame.init()
screen = pygame.display.set_mode([800, 600])
BLACK =(0,0,255)
keep_going = True
cont=500
clors= [0]* cont
locations = [0] * cont
size = [()]*cont

for n in range (cont):
    clors[n] = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
    size[n] = (20,10)
    locations[n] = (random.randint(0, 800), random.randint(0, 600))
while keep_going:
    for event in pygame.event.get():
        if event == pygame.QUIT:
            keep_going =False
            break
        print(event)
    for n in range(cont) :
        #pass
        pygame.draw. circle(screen, BLACK, locations[n], size[n][0],size[n][1])
    pygame.display.flip()

这是最小化重现

点赞1


评论

event改成event.type

嘿嘿嘿,我做好了,谢谢

这是链接:https://shequ.codemao.cn/community/557320


单纯的星能猫kE8W单纯的星能猫kE8W

BLACK[n]干嘛,你定义的BLACK本来就表示一种颜色

点赞0


评论

emm.....这个已经解决了


14丁梓航14丁梓航

你有导入turtle库吗?

可以导入一下

点赞0


评论