我在一个表面上包裹了一个图像,使不同尺寸的表面上具有相同尺寸的图像,但其中一个具有更多

问题描述 投票:0回答:1

我正在 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]))
python pygame
1个回答
0
投票

您需要在大墙面上多次

blit
墙砖图像:

for i in range(len(wall_x)):
    wall_img.append(pygame.Surface((WALL_WIDTH[i], WALL_HEIGHT[i])))
    (tile_width, tile_height) = spritesheet_wall.get_size()
    for x in range(0, WALL_WIDTH[i], tile_width):
        for y in range(0, WALL_HEIGHT[i], tile_height):
            wall_img[i].blit(spritesheet_wall, (x, y))
© www.soinside.com 2019 - 2024. All rights reserved.