我搜索了其他类似的线程但没有出现。我想要的是将一个精灵blit放到窗口上让我们说5秒(5000毫秒),当时间到了,它就会解开它。谢谢。
class Flag():
def Flagrun(self):
flaggen = str(randint(1,4))
global milliseconds
global flagactive
if flaggen == '1':
flag_x = 58
flag_y = 89
elif flaggen == '2':
flag_x = 464
flag_y = 82
elif flaggen == '3':
flag_x = 343
flag_y = 215
elif flaggen == '4':
flag_x = 66
flag_y = 535
window.blit(flag, (flag_x,flag_y))
collisiondet()
milliseconds += clock.tick_busy_loop(60)
print(milliseconds)
flagactive = 'No'
答案 0 :(得分:0)
有很多方法可以完成你想要完成的任务。你不能只是" unblit"一个图像,你必须通过擦除屏幕或重绘其背后的任何内容来绘制它。
这是一个非常基本的程序,每隔一秒显示一个红色圆圈,每隔两秒显示一个蓝色圆圈,每隔3秒显示一个绿色圆圈,每隔三秒显示一个黄色圆圈。这使用模数来跟踪何时应该显示的内容。
import pygame, sys
pygame.init()
screen = pygame.display.set_mode([400,100])
clock = pygame.time.Clock()
timer = 0
fps = 60
while 1:
clock.tick(fps)
timer += 1
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill([255,255,255])
if int(timer/fps)%2==0:
pygame.draw.circle(screen, [255,0,0], [0,0], 50)
if int(timer/(fps*2))%2==0:
pygame.draw.circle(screen, [0,0,255], [100,0], 50)
if int(timer/(fps*3))%2==0:
pygame.draw.circle(screen, [0,255,0], [200,0], 50)
if int(timer/fps)%3==0:
pygame.draw.circle(screen, [255,255,0], [300,0], 50)
pygame.display.flip()
您应该能够在程序中包含类似的内容。如果您对如何执行此操作感到困惑,请提供您的编码,以便我可以将其置于上下文中。我还没有能够测试这个代码(使用学校计算机),但它应该可以工作。如果您有任何其他问题,请将其留在下面的评论中,我会尽快回答。