pygame 相关问题
  • 板块灌水区
  • 楼主int8
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/1/10 11:45
  • 上次更新2023/10/24 04:54:49
查看原帖
pygame 相关问题
551089
int8楼主2023/1/10 11:45

本帖 OI 无关,违规提醒我自删

我通过 python 的 pygame.Color() 函数得到窗口的每个像素的颜色信息,并将其存进一个列表里,但是以下代码却出现了问题

import sys,pygame
# 创建一个窗口
screen=pygame.display.set_mode((800,800))
image=pygame.image.load("QQ图片20221230223116.png")
screen.blit(image,(0,0))
run=True
A=[[2,0],[0,2]]
# 得到窗口像素信息
pixelarray=pygame.PixelArray(screen)
c=[]
color=[]
# 本人刚学 python 3天,只会这样子初始化定义列表……
for i in range(0,800):
    c.append(" ")
for i in range(0,800):
    color.append(c)
f=False
# 枚举每个像素,将窗口像素颜色信息存进 color
for i in range(0, 800):
    for j in range(0, 800):
        color[i][j]=pygame.Color(pixelarray[i,j])
        
# 测试部分
print(color[234][12])
print(pygame.Color(pixelarray[234,12]))

在主循环中,我将 pygame.Color(pixelarray[i,j]) 的信息存入了color[i][j]。

后来程序运行不理想,我随便挑取了一个像素 (代码中的(234,12))输出其在 color 中的颜色和真实颜色 pygame.Color(pixelarray[]) 进行对比,发现他们居然不相等了,color[i][j] 的值在循环中会被多次改变!

后来经过一些测试,发现每个 color 的值都会在主循环中被多次改变,我很好奇这是为什么

希望各位大佬能分析一下这个代码的bug(欢迎D我)

2023/1/10 11:45
加载中...