python - 编写一个程序,在彩色矩形(从小到大)的背景上生成一个后退(从大到小)黑色正方形
问题描述
我们必须编写一个 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()
解决方案
我们必须编写一个 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()
推荐阅读
- kotlin - Kotlin 智能转换无法使用扩展功能
- swift - 带有授权不记名令牌和附加标头的 Alamofire 请求 Swift
- gradle - 此版本中使用了弃用的 Gradle 功能,使其与 Gradle 7.0 不兼容
- azure - nginx入口控制器不读取配置映射
- c - (操作系统)如何在 c 中使用 __asm mfence
- python - 如何在 Numpy 数组中查找和匹配模式?
- python - 跨类的不同方法管理 python OpenCV 窗口
- python - 对于非常大的数字,math.log10() 似乎有效,但 math.log() 似乎无效,为什么会这样?
- c - 不能将非常小的浮点数加在一起吗?C
- javascript - 同时从 iframe 中的表单更新数据