IndexError:我的pygame绘图程序的像素索引超出范围(Python 3.2.3)

时间:2014-01-23 00:55:19

标签: python pygame paint

我正在使用pygame制作绘画程序,这需要一个调色板。

我的代码基本上是:

from pygame import *
screen = display.set_mode((1152,864))
color = (0,0,0)

palette = image.load("images/palette.jpg")

paletteRect=Rect(0,675,150,200)
running = True
while running:
    finish = False
    for e in event.get():
        if e.type == QUIT:
            running = False

    screen.blit(palette,paletteRect)
    if mb[0] == 1 and paletteRect.collidepoint(mx,my):
        color = spectrum.get_at((mx,my))

它会发生什么:color = palette.get_at((mx,my))IndexError:像素索引超出范围

但是,如果我将其更改为paletteRect = palette.get_rect(),我的调色板工作得非常好。有人知道怎么修这个东西吗?谢谢。

1 个答案:

答案 0 :(得分:0)

我说你的问题是(mx, my)表示屏幕坐标(虽然很难说你没有包含这部分代码),所以当点击与你的{{1}发生碰撞时},它的坐标类似paletteRect,超出了(10, 700)图像尺寸。

您需要从鼠标x&中减去调色板在屏幕上的位置。 y coords:

palette