我有一个有趣的问题。我需要确保图像必须在随机位置的每个随机时间出现,并且如果它与我的GAMER碰撞,则必须在3秒钟内影响GAMER的GAMER(某些功能),然后消失并在随机时间后再次出现。。我有个主意,但是不起作用。(注意:这是我已经初始化的所有代码的一部分)
clock = pygame.time.Clock()
FPS = 30
playtime = 0
newtime=random.randint(3,10)
while mainloop:
milliseconds = clock.tick(FPS)
seconds = milliseconds / 1000.0
playtime += seconds
if playtime>=newtime:
image.draw()
newtime=random.randint(2,6) #because next appear time must change
if collision(GAMER,image):
GAMER.do_something() #how to do it exactly for 3 sec?
image.far_away() #just dissapear for some time
[谈论图像时,您谈论的是pygame.Surface
。显示器的pygame.Surface
可以是pygame.Surface
(分别是与窗口关联的表面)。例如
blit()
您不能移动远离表面。您必须在每一帧中绘制整个场景,并且必须在每一帧中绘制(screen.blit(image, image_rect)
)在显示表面上的图像。您可以更改图像的位置。当时间跨度超过时,创建一个随机位置:
blit
当播放器与图像]发生碰撞时,然后设置计算未来3秒的时间点。只要不超过3秒,就可以影响播放器:
position = random.randint(0, window_height), random.randint(0, window_width) image_rect = image.get_rect(center = position)
一般过程:
if image_rect.colliderect(GAMER.rect):
affecttime = playtime + 3
if playtime < affecttime:
GAMER.do_something()