微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pygame.Surface.set_at() 如何在 for 循环中工作?

如何解决pygame.Surface.set_at() 如何在 for 循环中工作?

我正在为像素艺术编写代码,并将 Surface 保存为文件。但是 .set_at() 方法似乎不起作用。

liftA2

tl;博士:

我有一个矩形网格(实际上是 SelectRects),用于存储颜色。当我导出时,我遍历这些矩形并将 export_surface 上的相应像素更改为该颜色。 这似乎不起作用。我试图画一个半径为 1 的圆,但这也不起作用。

解决方法

如果曲面的大小为 32 x 32,则坐标 (32,32) 越界。左上角像素坐标为(0,0),右下角像素坐标为(31,31):

export_surf.set_at((32,32),CYAN)

export_surf = pygame.Surface((32,32))
export_surf.set_at((31,31),CYAN)

坐标 (rect.x, rect.y) 也越界,因为 rect 指定了屏幕上的位置。

您必须将 (rect.x, rect.y) 除以图块的大小:

export_surf.set_at((rect.x // TILE_SIZE,rect.y // TILE_SIZE),rect.colour)

export_surf.set_at((rect.x,rect.y),rect.colour)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。