-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ_it
English | Français | Deutsch | Italiano | Español | Português | Slovenščina | Українська | Русский
PyGameMaker è un IDE open-source per lo sviluppo di giochi, ispirato a GameMaker 7.0. Ti permette di creare giochi 2D usando la programmazione visuale (Google Blockly) o un sistema eventi-azioni, senza dover scrivere codice.
Sì! PyGameMaker è completamente gratuito e open-source — il codice sorgente è sotto Licenza MIT, la documentazione sotto CC BY 4.0.
- Windows (.exe standalone)
- HTML5 (browser web)
- Linux (eseguibile nativo)
- Mobile (iOS/Android tramite Kivy)
No! PyGameMaker è progettato per i principianti. Puoi creare giochi usando:
- Blocchi Blockly drag-and-drop
- Sistema eventi/azioni point-and-click
- Senza alcun codice
PyGameMaker è ispirato a GameMaker 7.0 ma usa un proprio formato di progetto. Non puoi importare direttamente i file GameMaker, ma i concetti e il flusso di lavoro sono simili.
- Python 3.10 o superiore
- Windows, Linux o macOS
- Minimo 4 GB di RAM (8 GB consigliati)
- ~500 MB di spazio su disco
Vedi Iniziare_it per istruzioni di installazione dettagliate. Versione breve:
git clone https://github.com/Gabe1290/pythongm.git
cd pythongm
python -m venv venv
source venv/bin/activate # oppure venv\Scripts\activate su Windows
pip install -r requirements.txt
python main.pyAssicurati che Python sia installato e aggiunto al PATH di sistema. Verifica eseguendo:
python --versionSe questo fallisce, reinstalla Python e attiva "Add Python to PATH" durante l'installazione.
Prova a reinstallare le dipendenze:
pip install -r requirements.txt --force-reinstallI progetti vengono salvati in cartelle che scegli tu. Ogni progetto contiene:
-
project.json- Il file principale del progetto - Cartelle per sprite, suoni, oggetti, stanze, ecc.
Attualmente, PyGameMaker apre un progetto alla volta. Usa File > Apri Progetto per passare tra progetti.
Copia semplicemente l'intera cartella del progetto. Tutti gli asset e le impostazioni sono contenuti al suo interno. Valuta anche l'uso di git per il controllo versione:
cd mio_progetto
git init
git add .
git commit -m "Backup iniziale"Prova questi passaggi:
- Verifica che
project.jsonesista e non sia vuoto - Apri
project.jsonin un editor di testo per controllare errori JSON - Ripristina da un backup se disponibile
- Controlla l'output della console per messaggi di errore specifici
- Oggetto: Un modello/schema che definisce il comportamento
- Istanza: Una copia specifica di un oggetto posizionata in una stanza
Ad esempio, obj_nemico è un oggetto. Posizionare 5 nemici in una stanza crea 5 istanze di obj_nemico.
Cause comuni:
- Tipo di evento sbagliato: Assicurati di usare l'evento giusto (es. "Key Press" invece di "Keyboard")
- Nessuna istanza: L'oggetto deve avere istanze nella stanza
- Oggetto non visibile: Controlla la proprietà visible
- Ordine di esecuzione: Alcuni eventi vengono eseguiti prima di altri
Usa gli eventi di collisione:
- Apri l'oggetto che deve rilevare la collisione
- Aggiungi l'evento Collision with [altro_oggetto]
- Aggiungi le azioni per cosa succede alla collisione
- Keyboard [tasto]: Si attiva ad ogni frame finché il tasto è tenuto premuto
- Key Press [tasto]: Si attiva una volta quando il tasto viene premuto per la prima volta
- Key Release [tasto]: Si attiva una volta quando il tasto viene rilasciato
La prima stanza nell'albero delle risorse (in alto nell'elenco) si carica all'avvio del gioco. Trascina le stanze per riordinarle.
Usa le azioni per le stanze:
- Next Room: Vai alla stanza successiva nell'ordine
- Previous Room: Vai alla stanza precedente
- Go to Room: Salta a una stanza specifica
Gli oggetti vengono distrutti quando si lascia una stanza, a meno che non siano contrassegnati come Persistent nelle loro proprietà.
La dimensione della finestra di gioco corrisponde alle dimensioni della prima stanza. Puoi:
- Cambiare la dimensione della stanza per adattarla alla dimensione desiderata della finestra
- Usare le View per mostrare solo una parte della stanza
- PNG (consigliato, supporta la trasparenza)
- JPEG/JPG
- BMP
- GIF (solo il primo frame)
Controlla l'impostazione Origine nell'editor sprite. L'origine è il punto di ancoraggio per il posizionamento. Impostazioni comuni:
- In alto a sinistra (0, 0): Predefinita
- Centro: Buona per oggetti rotanti
- Centro in basso: Buona per i personaggi
- Crea uno sprite con più frame (striscia orizzontale)
- Imposta Numero di Frame nelle proprietà dello sprite
- Regola la Velocità di Animazione (frame al secondo)
Questo accade quando si ridimensionano gli sprite. Per la pixel art, disabilita l'interpolazione/smoothing nelle impostazioni di gioco, se disponibile.
- WAV (non compresso)
- OGG (consigliato per la musica)
- MP3
Controlla:
- Che il file audio esista nella cartella sounds
- Che il formato del file sia supportato
- Che tu stia usando il nome del suono corretto nelle azioni
- Il browser potrebbe richiedere un'interazione dell'utente (per HTML5)
Usa l'azione Play Music con l'opzione loop attivata, oppure Play Sound con il parametro loop impostato a vero.
Problemi comuni:
- Windows: DLL mancanti — assicurati che l'intera cartella di output sia inclusa
- HTML5: Il browser blocca i file locali — ospitalo su un server
- Asset mancanti: Verifica che tutti i file siano inclusi
La dimensione del gioco include Python e tutte le librerie. Per ridurla:
- Rimuovi gli asset non usati
- Comprimi immagini e audio
- Usa formati appropriati (OGG invece di WAV)
- Attiva la compressione UPX per le build Windows
Sì! I giochi che crei sono interamente tuoi e possono essere venduti. Il codice sorgente di PyGameMaker è sotto la permissiva Licenza MIT, quindi puoi usarlo liberamente in progetti commerciali — e, a differenza delle licenze copyleft, non sei obbligato a rendere open-source le tue modifiche.
- Apri un oggetto
- Fai clic sulla scheda Blockly nell'editor oggetti
- Appare l'area di lavoro di programmazione visuale
Entrambi i sistemi lavorano sullo stesso oggetto. La scheda Blockly e la scheda Events mostrano viste diverse della stessa logica. Le modifiche in uno si riflettono nell'altro.
Controlla:
- Di stare visualizzando l'oggetto corretto
- Scorri l'area di lavoro (i blocchi potrebbero essere fuori schermo)
- Controlla il livello di zoom
Suggerimenti per migliori prestazioni:
- Riduci il numero di istanze
- Evita calcoli pesanti negli eventi Step
- Usa gli allarmi invece di contare i frame
- Ottimizza le dimensioni degli sprite
- Distruggi le istanze che lasciano la stanza
L'evento Step viene eseguito ad ogni frame (60 volte al secondo per impostazione predefinita). Usa:
- Allarmi per azioni ritardate
- Condizioni da verificare prima di operazioni pesanti
- Una velocità della stanza più bassa, se appropriato
Segnala i bug nella pagina GitHub Issues. Includi:
- Cosa ti aspettavi che succedesse
- Cosa è successo realmente
- Passi per riprodurre il problema
- Il tuo sistema operativo e la versione di Python
- Iniziare_it - Installazione e nozioni di base
- Primo_Gioco_it - Tutorial passo-passo
- Eventi_e_Azioni_it - Riferimento completo
- Programmazione_Visuale_it - Guida a Blockly