【发布时间】:2019-07-03 09:36:06
【问题描述】:
我正在用 pygame 制作一个简单的图形游戏。我想画 2 个矩形,但它只画一个而不画另一个。
我做了一堂画不同人物的课。为了解决这个问题,我删除了这个类并做了一个简单的函数。身份证也没用。然后我只是把函数语句的代码放在程序中。
我得到的最终代码是这样的
import pygame
black = (0,0,0)
yellow = (200,200,0)
def drawShopButton():
pygame.draw.rect(gameDisplay, black, (690,435,110,65))
pygame.display.update()
pygame.draw.rect(gameDisplay, yellow, (0,500,110,65))
pygame.display.update()
pygame.init()
gameDisplay = pygame.display.set_mode((800, 500))
gameDisplay.fill((40, 120, 0))
pygame.display.update()
pygame.draw.rect(gameDisplay, black, (690,435,110,65))
pygame.display.update()
clock = pygame.time.Clock()
clock.tick(40)
pygame.draw.rect(gameDisplay, yellow, (0,500,110,65))
pygame.display.update()
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
pygame.display.update()
【问题讨论】:
-
在 pygame 中,您必须重绘所有内容。否则屏幕会被覆盖。此外,在绘制其余部分之前,您必须在每次迭代之前重新填充屏幕,即 gameDisplay.fill(...),然后是 pygame.draw 函数,然后是 pygame.update()
-
(0,500,110,65) 超出了您的 (800, 500) 范围替换为
pygame.draw.rect(gameDisplay, yellow, (0,0,110,65))并且您的代码有效。
标签: python python-3.x pygame draw rectangles