J'essaie d'apprendre à faire un jeu de base à l'aide de Pygame. Je veux importer et afficher une image au format .png. Jusqu'à présent, ma tentative a été: l'image (clouds.png) est dans le même dossier que le fichier. Lorsque j'essaie d'exécuter cela, je reçois une erreur: p>
4 Réponses :
Vous allez. Il bloque l'image à 0,0. Votre autre problème est que votre pyimage ne semble pas être construit avec le support PNG
import pygame from pygame.locals import* img = pygame.image.load('clouds.bmp') white = (255, 64, 64) w = 640 h = 480 screen = pygame.display.set_mode((w, h)) screen.fill((white)) running = 1 while running: screen.fill((white)) screen.blit(img,(0,0)) pygame.display.flip()
ne vous inquiétez pas, je suis sûr que malade avoir beaucoup de questions demain
N'importe quand. En outre, voici une assez bonne introduction à pygame: Pygame.org/docs/Tut/Intro/ intro.html , et il devrait couvrir tout ce que vous faites ici - c'est là que j'ai appris.
Notez que vous devriez généralement appeler le Convertir code >
ou convert_alpha code> méthode de l'image chargée (pygame.surface) car cela améliorera énormément les performances, par exemple
img = pygame.image.load ('clouds.bmp'). Convertir () Code>.
Voici un bloc de traitement d'image que j'utilise dans mes jeux: vous pouvez copier-coller ceci dans n'importe quel jeu et cela fonctionnera. OS code> et
sys code> doit être importé dans votre jeu ou autre chose ne fonctionnera pas. p> p>
import pygame as pg pg.init( ) screen = display.set_mode( ( 460 , 640 ) ) def picture( images , x , y , width , height , angle , horizontal_flip , vertical_flip ): images1 = image.load( images ) # loading image images2 = transform.scale( images1 , ( width , height ) ) # changing size images3 = transform.rotate( images2 , angle ) # changing angle 0 - 360 degree images4 = transform.flip( images3 , horizontal_flip , vertical_flip ) # horizontal or vertical flip - True or False images4rect = images4.get_rect( ) images4rect.x = x # setting x images4rect.y = y # setting y screen.blit( images4 , images4rect ) # image blit while True: screen.fill( ( 0 , 0 , 0 ) ) images = "image.png" # image name x = 100 # x-axis y = 100 # y-axis angle = 0 # 0 - 360 horizontal_flip = False # True vertical_flip = False # True width = 200 # width of image height = 150 # height of image picture( images , x , y , width , height , angle , horizontal_flip , vertical_flip ) pg.display.flip( )
Bonjour, voulez-vous ajouter des détails et des hypothèses que vous avez faite dans le programme comme la résolution doit être 460x640, quel est le chemin d'accès à l'image, si l'image source est de résolution différente de ce qui se passe, etc., ce serait plus complet et serait une réponse complète pour les personnes à comprendre et à consommer facilement. Bienvenue dans le débordement de pile.
Vous allez, voici comment je le ferais. J'espère que cela vous aide! EM> P> P> P>
Avez-vous essayé de donner la voie absolue à l'image? Vraisemblablement: "C: \ Utilisateurs \ Enrique \ Dropbox \ Clouds.png"
Votre boîte de python est-elle avec support PNG?
Votre Clouds.png est-elle nommée Clouds.png? / Quelque problème de capitalisation?
Où puis-je ajouter le chemin absolu?
et non j'ai le nom du fichier correct
De plus, votre «blanc» est principalement rouge.
Avez-vous essayé de charger un BMP? Si vous pouvez charger un BMP mais pas un PNG, il semblerait que vous ne disposez pas de support PNG compilé.
malade essayer ça ... et oui je sais que mon blanc est vraiment rouge (je plaisante simplement avec des couleurs)
D'accord. Changer l'image en .BMP ne provoque aucune erreur. Maintenant, comment puis-je obtenir l'image pour afficher? L'image est également 640 x 480 - une fois que le programme est exécuté, il affiche la couleur rouge (nommée White), les choses ne sont pas réactives
Vous devez la définir sur une variable, puis appeler l'écran.blit () dessus