首页 > 解决方案 > 如何在 Python 中随机化图像以及如何在图像顶部添加图像?

问题描述

我想解决2个问题:

1.)如何在 Python 中随机化图像?每次运行程序时,我都想显示一个图像。这些是我的代码的一些片段,但有一些错误。路径是复制和粘贴的,所以我不太确定为什么会出现错误。

import os
import random

path =r"D:\Files\Second Year Files\Advance Compprog\Final Project\Code Blocks\Images\Trivias"
files = os.listdir(path)
d = random.choice(files)
os.startfile(d)

FileNotFoundError: [WinError 2] 系统找不到指定的文件:'Trivia2.png'

我也尝试使用此代码,但没有显示:

import pygame
import os
import random

# Initialize the pygame
pygame.init()

screenHeight = 550
screenWidth = 1000
screen = pygame.display.set_mode((screenWidth, screenHeight))

Trivias = [pygame.image.load(os.path.join("Images/Trivias", "Trivia1.png")),
            pygame.image.load(os.path.join("Images/Trivias", "Trivia2.png")),
            pygame.image.load(os.path.join("Images/Trivias", "Trivia3.png"))]

trivia = random.choice(Trivias)
screen.blit(trivia, [0,0])

2.) 如何在另一张图像之上添加图像? 我试图在图像上对图像进行 blit,但是当我运行程序时,它要么会快速闪烁,要么会显示我用来 blit 的最后一个图像。如果我想对第一张图像进行 blit,然后在一段时间后,我想将它与另一张重叠(两个图像具有相同的大小并且将在相同的位置显示)。我该怎么做并设置时间间隔?我希望你能帮助我请:(

  background_image = pygame.image.load(os.path.join("Images/Start", "Level1Lose.png"))
  screen.blit(background_image, [0, 0])
  pygame.display.update()
  hello_image = pygame.image.load(os.path.join("Images/Start", "hello.png"))
  screen.blit(hello_image, [0, 0])
  pygame.display.update()

标签: pythonpygame

解决方案


问题 1 的答案:

检查files变量。这是一个列表。它可能是该目录中仅包含文件名的列表,我认为是这种情况。为了正常运行,它应该是文件路径列表,而不仅仅是文件名。

path+d您可以通过传递而不是仅传递来解决此问题d

相同的论点可以应用于未遂案件。


推荐阅读