【发布时间】:2023-02-12 11:21:09
【问题描述】:
我将如何制作某种算法来根据周围的图块显示正确的图像。
这就是我定义关卡的方式,然后我使用“for 循环”将每个图块绘制到屏幕上
level = [
['1','1','1','1','1','1','1','1','1','1'],
['1','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','1'],
['1','0','0','1','1','1','0','0','0','1'],
['1','0','0','0','1','0','0','0','0','1'],
['1','0','0','0','1','1','0','0','0','1'],
['1','0','0','0','0','1','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','1'],
['1','1','1','1','1','1','1','1','1','1'],
]
现在,我有一个包含所有图块的 png 文件,如果我愿意,我可以显示角落和所有正确的方向,但如果我只是快速更改我的地图,我将不得不重做所有内容!
是否有一种方法可以根据周围的瓷砖在每个瓷砖上显示不同的图像(这样在左上角的角落它会检测到它下面和右边的瓷砖,然后根据位置显示正确的图像这是)
这是完整的代码,所以你可以测试它!
import pygame
# Initialize Pygame
pygame.init()
# Set the size of the window
size = (360, 360)
screen = pygame.display.set_mode(size)
# Set the title of the window
pygame.display.set_caption("TILE MAP AAAaaAH")
tilesize = 30
level = [
['1','1','1','1','1','1','1','1','1','1'],
['1','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','1'],
['1','0','0','1','1','1','0','0','0','1'],
['1','0','0','0','1','0','0','0','0','1'],
['1','0','0','0','1','1','0','0','0','1'],
['1','0','0','0','0','1','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','1'],
['1','1','1','1','1','1','1','1','1','1'],
]
tiles = []
def build_level():
x = 0
y = 0
for row in level:
y += 1
x = 0
for tile in row:
x += 1
if tile == '1':
build = pygame.Rect(x*tilesize, y*tilesize, tilesize, tilesize)
tiles.append(build)
if tile == '0':
pass
build_level()
def draw_level():
for tile in tiles:
pygame.draw.rect(screen, (50, 50, 50), tile)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Main Loop
screen.fill((50, 50, 250))
draw_level()
pygame.display.update()
pygame.quit()
【问题讨论】: