我想在屏幕上随机绘制矩形,但是如果已经绘制的矩形数量超过3,那么我想开始删除“旧的”,也就是那些在屏幕上绘制时间最多的矩形
import pygame
import random
import time
pygame.init()
x_axis = [500, 650, 350, 400]
y_axis = [100, 50, 450, 300]
sq_width = [10, 15, 20, 25, 30]
sec = [0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5]
sq_display = []
class Squares:
def __init__(self, x, y, width, height):
self.x = x
self.y = y
self.width = width
self.height = width
def draw(self):
a = pygame.draw.rect(window, (255, 0, 0), (random.choice(x_axis), random.choice(y_axis), self.width, self.height))
sq_display.append(a)
if len(sq_display) > 3:
sq_display.remove(sq_display[0])
time.sleep(random.choice(sec))
return
我每次都尝试将矩形存储到一个变量中,并将其附加到一个列表中,我想以后我可以删除它。嗯,它不起作用。所以我想知道我的问题是否有解决办法
存储当前绘制的所有矩形的队列,每当列表长度超过3时,只需使用存储的坐标绘制一个白色矩形(或背景的任何颜色)
从
draw
方法中删除新正方形的生成:必须在应用程序循环的每个帧中重新绘制整个场景。在绘制正方形之前清除显示,然后绘制列表中的所有正方形,最后更新显示:
如果希望应用程序保持响应,则不能通过} 获取自
time.sleep
延迟应用程序循环。使用^{pygame.init()
以来的当前毫秒数,并在随机时间过后创建一个新的平方:最简单的例子:
相关问题 更多 >
编程相关推荐