在 pygame 中使用 W(string) 绘制关卡

Drawing Levels using W(string) in pygame

我想用字符串做一个关卡

那个:

level = []

在你放置 W 的关卡中

如何绘制和显示里面的数据?

我见过有人这样做来制作瓦片地图。基本上,您列出了列表。最外面的列表代表整个级别,每个内部列表代表该级别中的每一行图块。内部列表中的内容决定了每一行由哪些图块组成。如何遍历它并显示图块取决于您,但这是一种方法。

import sys
import pygame

pygame.init()
screen = pygame.display.set_mode((600, 600))

level = [["w", "w", "w", "w", "w", "w"],
         ["w", "r", "g", "w", "b", "w"],
         ["w", "w", "r", "g", "b", "w"],
         ["w", "g", "b", "b", "w", "w"],
         ["w", "b", "w", "g", "g", "w"],
         ["w", "w", "w", "w", "w", "w"]]

wsize = 100

while True:
    for event in pygame.event.get():
        keys = pygame.key.get_pressed()
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()  

    screen.fill((255, 255, 255))

    for y, row in enumerate(level):
        for x, tileType in enumerate(row):
            if tileType == "w":
                pygame.draw.rect(screen, (0, 0 ,0), (x * wsize, y * wsize, wsize, wsize))
            if tileType == "g":
                pygame.draw.rect(screen, (0, 255 ,0), (x * wsize, y * wsize, wsize, wsize))
            if tileType == "b":
                pygame.draw.rect(screen, (0, 0 ,255), (x * wsize, y * wsize, wsize, wsize))
            if tileType == "r":
                pygame.draw.rect(screen, (255, 0 ,0 ), (x * wsize, y * wsize, wsize, wsize))
            

    pygame.display.update()