【问题标题】:pygame.draw.rect() not drwaing another rectanglepygame.draw.rect() 没有绘制另一个矩形
【发布时间】: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


【解决方案1】:

游戏板的左上角是 (0,0),右下角是 (800,500)。 因此,pygame.draw.rect(gameDisplay, yellow, (0,500,110,65)) 正在尝试绘制一个矩形,该矩形从棋盘的右上方开始,宽度和高度为 (110, 65)。 您的代码可以绘制两个矩形,但超出了可见范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多