如何在设定时间内 'blit' 精灵到 window
How to 'blit' sprites onto window for a set time
我搜索了其他类似的话题,但没有找到。我想要的是将一个精灵 blit 到 window 上,让我们说 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'
您可以通过多种方式完成您想要完成的任务。你不能只 "unblit" 一个图像,你必须在它上面绘制,或者通过擦除屏幕,或者重新绘制它后面应该有的任何东西。
这是一个非常基本的程序,每隔一秒显示一个红色圆圈,每隔两秒显示一个蓝色圆圈,每隔三秒显示一个绿色圆圈,每隔三秒显示一个黄色圆圈。这利用模数来跟踪何时应该显示内容。
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()
您应该能够在您的程序中包含类似的内容。如果您对如何执行此操作感到困惑,请贡献您的代码,以便我将其放在上下文中。我无法测试此代码(使用学校计算机),但它应该可以工作。如果您有任何其他问题,请在下面的评论中留下它们,我会尽快回答。
我搜索了其他类似的话题,但没有找到。我想要的是将一个精灵 blit 到 window 上,让我们说 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'
您可以通过多种方式完成您想要完成的任务。你不能只 "unblit" 一个图像,你必须在它上面绘制,或者通过擦除屏幕,或者重新绘制它后面应该有的任何东西。
这是一个非常基本的程序,每隔一秒显示一个红色圆圈,每隔两秒显示一个蓝色圆圈,每隔三秒显示一个绿色圆圈,每隔三秒显示一个黄色圆圈。这利用模数来跟踪何时应该显示内容。
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()
您应该能够在您的程序中包含类似的内容。如果您对如何执行此操作感到困惑,请贡献您的代码,以便我将其放在上下文中。我无法测试此代码(使用学校计算机),但它应该可以工作。如果您有任何其他问题,请在下面的评论中留下它们,我会尽快回答。