试图在PYGAME中的随机时间使随机图像发白

问题描述 投票:0回答:1

我有一个有趣的问题。我需要确保图像必须在随机位置的每个随机时间出现,并且如果它与我的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
python pygame
1个回答
0
投票

[谈论图像时,您谈论的是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()
© www.soinside.com 2019 - 2024. All rights reserved.