2 votes

Comment randomiser des images en Python et comment faire un blitz d'une image sur une autre ?

Je voudrais aborder deux questions :

1.) Comment randomiser des images en Python ? Je voulais afficher une seule image à chaque fois que je lance mon programme. Voici quelques extraits de mes codes, mais il y a des erreurs. Le chemin a été copié et collé, donc je ne suis pas sûr de la raison de l'erreur.

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] Le système ne peut pas trouver le fichier spécifié : 'Trivia2.png'.

J'ai aussi essayé d'utiliser ce code mais rien ne s'affiche :

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.) Comment faire apparaître une image par-dessus une autre image ? J'ai essayé de faire clignoter une image au-dessus d'une autre, mais lorsque j'exécute le programme, il clignote très rapidement ou la dernière image que j'ai utilisée pour faire clignoter s'affiche. Et si je voulais faire clignoter la première image puis, après un certain intervalle de temps, la superposer à l'autre (les deux images ont la même taille et seront affichées à la même position). Comment puis-je faire cela et mettre l'intervalle de temps aussi ? J'espère que vous pourrez m'aider pls :(

  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()

0voto

Neeraj Points 120

Réponse à la question 1 :

Consulte files variable. Il s'agit d'une liste. Il se peut que ce soit une liste des seuls noms de fichiers dans ce répertoire, ce qui me semble être le cas. Pour un bon fonctionnement, il devrait s'agir d'une liste de chemins d'accès au fichier et pas seulement du nom du fichier.

Vous pouvez résoudre ce problème en passant path+d au lieu de seulement d

Le même argument peut être appliqué à l'affaire de la tentative.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X