pygame 中的落物游戏

Falling objects game in pygame

我目前正在尝试制作一款游戏,让我的形状在一定时间内反复从屏幕顶部掉落,到目前为止,我已经设法让我的形状能够从屏幕顶部掉落屏幕,但我正在努力解决的问题是再次出现在顶部并重复。

此代码展示了我如何将形状绘制到屏幕上。

def draw_window_one(star, triangle,rectangle,square,hexagon,circle):
    WIN.fill(WHITE)
    WIN.blit(GOLD_STAR, (star.x, star.y))
    WIN.blit(GREEN_TRIANGLE, (triangle.x, triangle.y))
    WIN.blit(LIGHT_BLUE_RECTANGLE, (rectangle.x,rectangle.y))
    WIN.blit(ORANGE_SQUARE, (square.x,square.y))
    WIN.blit(PURPLE_HEXAGON, (hexagon.x,hexagon.y))
    WIN.blit(RED_CIRCLE, (circle.x,circle.y))

    pygame.display.update()

这就是我让它们掉落在屏幕上的逻辑。

def main():
    star = pygame.Rect(75, 0, WIDTH, HEIGHT)
    triangle = pygame.Rect(575, 0, WIDTH, HEIGHT)
    rectangle = pygame.Rect(175, 0, WIDTH, HEIGHT)
    square = pygame.Rect(275, 0, WIDTH, HEIGHT)
    hexagon = pygame.Rect(375, 0, WIDTH, HEIGHT)
    circle = pygame.Rect(475, 0, WIDTH, HEIGHT)

    clock = pygame.time.Clock()
    run = True
    while run:
        clock.tick(FPS)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
        star.y += 1
        triangle.y += 1
        rectangle.y += 1
        square.y += 1
        hexagon.y += 1
        circle.y += 1
        draw_window_one(star, triangle,rectangle,square,hexagon,circle)

     pygame.quit()


 if __name__ == "__main__":
    main()

这就是你能做的。如果对象的 y 值大于屏幕高度,则可以使用 if 语句将 y 值设置为 -1

if object.y > HEIGHT:
    object.y = -1

或替代

if object.y > HEIGHT:
    del object
    object=ObjectClass()

这应该在您的循环中。