我正在 pygame 中制作一个平台游戏,我有一个我喜欢的墙壁纹理,但是当我在不同大小的墙壁上使用它时,它只会拉伸图像(图像是 4 行砖块)。我希望它以与原始图像相同的比例显示相同的图像,但它会“循环”图像以多次显示它。抱歉英语不好
我尝试了简单的transform.scale函数,我希望它能做到我之前所说的,但它拉伸了相同的图像 它处于 for 循环中,因为我有一个墙壁坐标、长度和高度的列表,目前篮球是球员:
代码:
wall_img = []
for i in range(len(wall_x)):
wall_img.append(pygame.Surface((1080, 1080)))
wall_img[i].blit(spritesheet_wall, (0, 0))
wall_img[i] = pygame.transform.scale(wall_img[i], (WALL_WIDTH[i], WALL_HEIGHT[i]))
您需要在此表面上多次
blit
平铺图像:
wall_img.append(pygame.Surface((1080, 1080)))
wall_tile_width = spritesheet_wall.get_width()
for x in range(0, WALL_WIDTH[i], wall_tile_width):
wall_img[i].blit(spritesheet_wall, (x, 0))