Domanda Risolto problema inserire immagini python

Stato
Discussione chiusa ad ulteriori risposte.

AnDr3A DAL3

Utente Bronze
30 Agosto 2020
31
7
11
27
Ultima modifica da un moderatore:
Ciao a tutti, mi sto approcciando al mondo di python e ho pensato di iniziare scrivendo flappy bird con pygame, ma sto avendo problemi nell'inserire le immagini di gioco perchè quando provo ad inserirle mi da un errore nel percorso dicendo che non trova il file e non riesco a capire dov'è lo sbaglio. HELP!
Ecco il codice:
Python:
import pygame
pygame.init()
schermo=pygame.display.set_mode((288, 512))
sfondo = pygame.image.load("immagini/sfondo.png")
uccello = pygame.image.load("immagini/uccello.png")
base = pygame.image.load("immagini/base.png")
gameover = pygame.image.load("immagini/gameover.png")
tubo_giu = pygame.image.load("immagini/tubo.png")
tubo_su = pygame.transform.flip(tubo_giu, False, True)
FPS = 50
def disegna_oggetti():
    SCHERMO.blit(sfondo, (0,0))
    SCHERMO.blit(uccello, (uccellox,uccelloy))
   
def aggiorna():
    pygame.display.update()
    pygame.time.Clock().tick(FPS)


def inizializza():
    global uccellox, uccelloy, uccello_vely
    uccellox, uccelloy = 60, 150
    uccello_vely = 0
inizializza()
while True:
    uccello_vely += 1
    uccelloy += uccello_vely
    disegna_oggetti()
    aggiorna()



Grazie in anticipo a chi mi aiuterà!
 
Non avendo l'errore sott'occhio l'unica cosa che mi viene in mente da quello che dici tu e che veramente non trova il file quindi dando un occhiata al codice il problema penso sia nel percorso all'immagine che inserisci.
Presumo che questo script non stia nella stessa cartella.
Se la struttura dei tuoi file é
  • Tuoprogetto
    • Immaggini
      • sfondo.png
    • Src
      • ScriptInQuestion.py
Quando dichiari
sfondo = pygame.image.load("immagini/sfondo.png")
Devi specificare il percorso in questo modo
Python:
sfondo= pygame.image.load("../imaggini/sfondo.png")
 
  • Mi piace
Reazioni: AnDr3A DAL3
Grazie per la risposta, mi è sfuggito di pubblicare anche l'errore che effettivamente riguarda il percorso, solo che io ho già provato mettendo l'intero percorso più volte e controllando la sintassi ma nulla purtroppo. Infatti se ho pubblicato questa domanda è perché non so davvero dove sia il problema e cosa mi sia sfuggito
 
Se lo script lo lanci con il percorso scritto come lo hai scritto nel codice postato é normale che non trovi le immagini perche sta cercando una cartella immaggini nell cartello corrente cioe dove sta lo script. Hai provato a impostare il percorso come ti ho detto in caso posta anche l'errore intero.
 
Ciao a tutti, mi sto approcciando al mondo di python e ho pensato di iniziare scrivendo flappy bird con pygame, ma sto avendo problemi nell'inserire le immagini di gioco perchè quando provo ad inserirle mi da un errore nel percorso dicendo che non trova il file e non riesco a capire dov'è lo sbaglio. HELP!
Ecco il codice:
Python:
import pygame
pygame.init()
schermo=pygame.display.set_mode((288, 512))
sfondo = pygame.image.load("immagini/sfondo.png")
uccello = pygame.image.load("immagini/uccello.png")
base = pygame.image.load("immagini/base.png")
gameover = pygame.image.load("immagini/gameover.png")
tubo_giu = pygame.image.load("immagini/tubo.png")
tubo_su = pygame.transform.flip(tubo_giu, False, True)
FPS = 50
def disegna_oggetti():
    SCHERMO.blit(sfondo, (0,0))
    SCHERMO.blit(uccello, (uccellox,uccelloy))
  
def aggiorna():
    pygame.display.update()
    pygame.time.Clock().tick(FPS)


def inizializza():
    global uccellox, uccelloy, uccello_vely
    uccellox, uccelloy = 60, 150
    uccello_vely = 0
inizializza()
while True:
    uccello_vely += 1
    uccelloy += uccello_vely
    disegna_oggetti()
    aggiorna()



Grazie in anticipo a chi mi aiuterà!
Lo hai preso da pymike vero? Comunque posta l'errore, molto probabilmente non è indicato bene il percorso.
 
Traceback (most recent call last):
File "C:\Users\andre\OneDrive\Desktop\gametest.py", line 4, in <module>
sfondo = pygame.image.load("immagini/sfondo.png")
FileNotFoundError: No such file or directory.

Questo è l'errore senza mettere il percorso per intero.

invece provando a mettere il percorso per intero mi si apre una finestra che indica un SyntaxError che cita:

(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

e se guardo il file con il codice mi evidenzia la prima parentesi contenente il percorso per l'immagine.
Messaggio unito automaticamente:

Lo hai preso da pymike vero? Comunque posta l'errore, molto probabilmente non è indicato bene il percorso.
no ma era un canale che fa contenuti simili, lo sto facendo per fare un po di pratica e capire come vengono scritti i codici in python
 
Traceback (most recent call last):
File "C:\Users\andre\OneDrive\Desktop\gametest.py", line 4, in <module>
sfondo = pygame.image.load("immagini/sfondo.png")
FileNotFoundError: No such file or directory.

Questo è l'errore senza mettere il percorso per intero.

invece provando a mettere il percorso per intero mi si apre una finestra che indica un SyntaxError che cita:

(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

e se guardo il file con il codice mi evidenzia la prima parentesi contenente il percorso per l'immagine.
Messaggio unito automaticamente:


no ma era un canale che fa contenuti simili, lo sto facendo per fare un po di pratica e capire come vengono scritti i codici in python
La cartella immagini è sul desktop giusto? Ora sono un po' di fretta, stasera vedo meglio. Nel frattempo copia incolla l'errore su google, in genere è un buon modo. Comunque non so quale sia il tuo livello ma se lo fai per capire come vengono scritti i codici in python non partire da pygame
 
invece provando a mettere il percorso per intero mi si apre una finestra che indica un SyntaxError che cita:
Cosa intendi per percorso per intero puoi indicare come hai organizzato i file dove si trova gametest.py rispetto alla cartella immaggini.
Percorso per intero hai provato a mettere come ti ho indicato usando i due .. ?
 
La cartella immagini è sul desktop giusto? Ora sono un po' di fretta, stasera vedo meglio. Nel frattempo copia incolla l'errore su google, in genere è un buon modo. Comunque non so quale sia il tuo livello ma se lo fai per capire come vengono scritti i codici in python non partire da pygame
Grazie per il consiglio, cercherò l'errore su google e proverò a trovare la soluzione, per quanto riguarda la cartella immagini non è sul desktop
Messaggio unito automaticamente:

Cosa intendi per percorso per intero puoi indicare come hai organizzato i file dove si trova gametest.py rispetto alla cartella immaggini.
Percorso per intero hai provato a mettere come ti ho indicato usando i due .. ?
percorso per intero volevo dire che ho scritto per intero dove si trova la cartella immagini, il file gametest si trova sul desktop e ho provato a mettere i due punti come mi hai consigliato ma nulla.
 
Ultima modifica da un moderatore:
Grazie per il consiglio, cercherò l'errore su google e proverò a trovare la soluzione, per quanto riguarda la cartella immagini non è sul desktop
Messaggio unito automaticamente:


percorso per intero volevo dire che ho scritto per intero dove si trova la cartella immagini, il file gametest si trova sul desktop e ho provato a mettere i due punti come mi hai consigliato ma nulla.
mi pare di capire che lo script però sia sul desktop. Tu in pratica devi specificare il percorso relativo partendo dalla cartella in cui si trova lo script per arrivare all'immagine. Prova a mettere sul desktop il file.py e le 5 immagini. Senza altre cartelle, proprio sul desktop. Poi metti così:

Python:
sfondo = pygame.image.load("sfondo.png")
uccello = pygame.image.load("uccello.png")
base = pygame.image.load("base.png")
gameover = pygame.image.load("gameover.png")
tubo_giu = pygame.image.load("tubo.png")
Dovrebbe funzionare perché l'errore è di percorso.

Per farti un esempi: mettiamo che sul desktop (che è anch'esso una cartella) ci siano 2 cartelle: prove e immagini. Dentro prove abbiamo lo script e dentro immagini l'immagine. Il percorso andrebbe indicato così:

Python:
sfondo = pygame.image.load("../immagini/sfondo.png")
 
mi pare di capire che lo script però sia sul desktop. Tu in pratica devi specificare il percorso relativo partendo dalla cartella in cui si trova lo script per arrivare all'immagine. Prova a mettere sul desktop il file.py e le 5 immagini. Senza altre cartelle, proprio sul desktop. Poi metti così:

sfondo = pygame.image.load("sfondo.png")
uccello = pygame.image.load("uccello.png")
base = pygame.image.load("base.png")
gameover = pygame.image.load("gameover.png")
tubo_giu = pygame.image.load("tubo.png")

Dovrebbe funzionare perché l'errore è di percorso.

Per farti un esempi: mettiamo che sul desktop (che è anch'esso una cartella) ci siano 2 cartelle: prove e immagini. Dentro prove abbiamo lo script e dentro immagini l'immagine. Il percorso andrebbe indicato così:

sfondo = pygame.image.load("../immagini/sfondo.png")
Ho provato e ora funziona tutto, grazie mille! Più tempo passo in questa community cercando di formarmi in questo campo e più mi convinco di essere capitato nel posto perfetto!
 
  • Mi piace
Reazioni: N3v5
Stato
Discussione chiusa ad ulteriori risposte.