在 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()
我想用字符串做一个关卡
那个:
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()