首页 > 解决方案 > 编写一个程序,在彩色矩形(从小到大)的背景上生成一个后退(从大到小)黑色正方形

问题描述

我们必须编写一个 porgram,它将在 (0,0) 从小到大的矩形背景上生成一个后退(从大到小)黑色正方形。屏幕为 700 x 700

我的程序的问题是矩形的背景从大到小,而后退的正方形从小到大。你能帮我么?

import pygame, random

pygame.init()
RED = (255,0,0)
BLACK = (0,0,0)
SIZE = (700, 700)
screen = pygame.display.set_mode(SIZE)
for x in range(700):
    pygame.draw.rect(screen,((random.randint(0,255),random.randint(0,255),random.randint(0,255))),(1*x,1*x,700,700))

for xy in range(700):
    pygame.draw.rect(screen,BLACK,(700,700,-xy,-xy))
    pygame.display.flip()
    pygame.event.get()
    pygame.time.wait(1)

pygame.quit()

标签: pythonpygame

解决方案


我们必须编写一个 porgram,它会在背景上生成一个后退(从大到小)黑色方块:

pygame.draw.rect(screen,BLACK,(700,700,-xy,-xy))

pygame.draw.rect(screen, BLACK, (0, 0, size, size))

在从 (0,0) 由小到大的矩形背景上

pygame.draw.rect(screen, color,(1*x,1*x,700,700))

pygame.draw.rect(screen, color, (0, 0, size, size))

请注意,黑色矩形的黑色尺寸会减小,因此您必须绘制一个尺寸比黑色矩形大一号的彩色矩形,然后是黑色矩形。在一个循环中画出尺寸减小的矩形。例如:

import pygame, random

pygame.init()
RED = (255,0,0)
BLACK = (0,0,0)
SIZE = (700, 700)
screen = pygame.display.set_mode(SIZE)

for size in range(700, 0, -1):
    color = ((random.randint(0,255), random.randint(0,255), random.randint(0,255)))
    pygame.draw.rect(screen, color,(0, 0, size+1, size+1))
    pygame.draw.rect(screen, BLACK, (0, 0, size, size))
    pygame.display.flip()
    pygame.event.get()
    pygame.time.wait(1)

pygame.quit()


推荐阅读