【发布时间】:2022-01-17 17:53:33
【问题描述】:
我有这个 pygame 代码,我希望它为一个镶有宝石的闪电战风格游戏绘制一个矩形板。这就是我所拥有的,当你运行它时,它会无限更新向屏幕发送垃圾邮件的新矩形。
import pygame as pg
import sys, random
pg.init()
clock = pg.time.Clock()
cell_size = 40
cell_num = 20
disp = pg.display.set_mode((cell_size * cell_num, cell_size * cell_num))
bg = pg.Surface((cell_size * cell_num, cell_size * cell_num))
bg.fill('white')
gold = pg.Color(221, 238, 81)
sea_foam = pg.Color(81, 238, 143)
pink = pg.Color(238, 145, 251)
gr33n = pg.Color(0, 255, 35)
blu = pg.Color(0, 236, 255)
colors_list = [gold, sea_foam, pink, gr33n, blu]
class Board:
def __init__(self):
self.x = [0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440, 480, 520, 560, 600, 640, 680, 720, 760, 800]
self.y = [0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440, 480, 520, 560, 600, 640, 680, 720, 760, 800]
def drawBoard(self):
for i in range(0,21):
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[0], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[1], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[2], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[3], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[4], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[5], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[6], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[7], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[8], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[9], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[10], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[11], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[12], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[13], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[14], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[15], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[16], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[17], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[18], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[19], cell_size, cell_size))
pg.draw.rect(disp, random.choice(colors_list), (self.x[i], self.y[20], cell_size, cell_size))
game = Board()
while True:
for event in pg.event.get():
if event.type == pg.QUIT:
pg.quit()
sys.exit()
disp.blit(bg,(0,0))
game.drawBoard()
pg.display.update()
clock.tick(60)
【问题讨论】:
-
当你运行你的代码时,(你在这里发布的那个),你会得到一个空白屏幕吗?我不知道,但我得到一个黑屏。
-
欢迎来到 Stack Overflow。请阅读formatting help 并确保您的代码与您实际拥有的完全相同。此处显示的代码将是语法错误,因为
while True:循环中没有任何缩进。