首页 > 解决方案 > 如何使用pygame和算法一次绘制多个矩形?(PCG?)

问题描述

我正在制作一个小游戏来学习python。这是一个游戏,你控制一个想要离开地牢的红点。我正在使用 pygame 作为图形界面。

我正在创建一个由矩形组成的 2D 地图生成器,但我认为我使用了不好的方法:我在矩形之后创建矩形,我需要“一个接一个”设置所有特征。

即使这种方法教会了我很多基本的东西,它也太长了,而且出错的几率会随着代码的长度而增加。

所以我认为使用算法会更快,但我不知道我需要使用哪种程序内容生成器。

有关信息,以下是我想对该算法提出的条件:

我怎样才能做到这一点 ?

这是我正在使用的当前方法(我为这个问题做了一个小例子):

import pygame
import random

screen = pygame.display.set_mode((750,750))
done = False
BLACK = (0,0,0)
WHITE = (255,255,255)
RED = (255,0,0)
BLUE = (0,0,255)

def main():
    global BLACK, done, WHITE, RED, BLUE, X, Y

    X1 = random.randint(30,300)
    Y1 = random.randint(30,300)
    W1 = random.randint(30,300)
    H1 = random.randint(30,300)

    X2 = random.randint(30,300)
    Y2 = random.randint(30,300)
    W2 = random.randint(30,300)
    H2 = random.randint(30,300)

    X3 = random.randint(30,300)
    Y3 = random.randint(30,300)
    W3 = random.randint(30,300)
    H3 = random.randint(30,300)

    screen.fill(BLACK)
    pygame.draw.rect(screen, WHITE, (X1, Y1, W1, H1))
    pygame.draw.rect(screen, RED, (X2, Y2, W2, H2))
    pygame.draw.rect(screen, BLUE, (X3, Y3, W3, H3))
    pygame.display.update()

    while not done:

        for event in pygame.event.get():

            if event.type == pygame.KEYDOWN and event.key == pygame.K_1:
                main()

            if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
                pygame.quit()
                quit()


main()
pygame.quit()
quit()

标签: python-3.xalgorithmpygame

解决方案


推荐阅读