-
Darkman-92™.
User deleted
Ed ecco la prima vera lezione del PSP-Python.
Qualche informazione utile:
-Documentazione in italiano di Python: http://python.it/doc/Python-Docs/html/
-Homepage di psp-python: http://fraca7.homeunix.net/trac/
-Documentazione modulo psp2d: http://fraca7.homeunix.net/trac/wiki/PSP2d
-Documentazione modulo pspsnd: http://fraca7.homeunix.net/trac/wiki/PSPSnd
-Documentazione modulo pspos: http://fraca7.homeunix.net/trac/wiki/PSPOS
-Documentazione modulo pspnet: http://fraca7.homeunix.net/trac/wiki/PSPNet
Materiale necessario
PACCHETTO CONTENENTE IMMAGINI E ALTRO
Partiamo subito col codice del classico "Ciao Mondo".
Lo stesso codice più il font lo trovate nella directory esempio_1 del pacchetto precedentemente scaricato.
# -*- coding: iso-8859-1 -*-
#Esempio 01: "Ciao Mondo"
import psp2d, pspos
#Setto velocità processore e bus (all'avvio è a 333)
pspos.setclock(222)
pspos.setbus(111)
screen = psp2d.Screen()
#Carico il font:
font = psp2d.Font('font.png')
#Loop principale:
while True:
#Scrivo a video:
font.drawText(screen, 10, 40, "Ciao Mondo")
font.drawText(screen, 10, 255, "Premi X per uscire")
#Disegno fisicamente il video:
screen.swap()
#Controllo se è stato premuto X:
pad = psp2d.Controller()
if pad.cross:
break
Vediamo come funziona:
import psp2d, pspos
Questa riga importa i moduli psp2d (gestione grafica) e pspos (informazioni e gestione del sistema).
Dopo l'importazione avremo a disposizione tutte le funzioni contenute nei due moduli.
Infatti:
pspos.setclock(222)
pspos.setbus(111)
qui vengono utilizzate le funzioni setclock e setbus per impostare velocità del bus e del clock della PSP.
Questo è necessario perché all'avvio psp-python viene eseguito alla massima velocità (333/266) mentre per il nostro esempio non abbiamo bisogno di tutta questa potenza.
screen = psp2d.Screen()
Questa riga salva in una variabile l'oggetto "schermo della psp", indispensabile per scrivere e visualizzare immagini a video.
Ora carichiamo in memoria il font da usare per scrivere a video:
font = psp2d.Font('font.png')
Ed ora entriamo nel "loop principale" del programma: questo è il ciclo infinito nel quale viene disegnato tutto a video e viene controllato l'input dell'utente.
while True:
Così si genera un loop infinito (in quanto la condizione True è sempre...vera!).
Per scrivere a video utilizzando un font si usa il metodo drawText in questo modo:
font.drawText(oggettoSulQualeScrivere, posX, posY, testo)
IMPORTANTE:
Tutto quello che viene scritto a video con una istruzione drawText non è immediatamente visualizzato.
Le operazioni di disegno vengono eseguite in realtà su una copia dello schermo.
Per visualizzare questa copia viene utilizzata il metodo swap dell'oggetto screen.
In poche parole:
-Si disegna tutto in una copia dello schermo.
-Quando tutto lo schermo è stato disegnato viene visualizzato col metodo swap.
A questo punto manca solo il controllo dell'input e la chiusura del programma alla pressione di X.
pad = psp2d.Controller()
Così viene letto lo stato dei pulsanti della PSP e salvato nella variabile pad.
La variabile pad ha una proprietà per ogni pulsante della PSP che viene impostata a True se il pulsante è premuto.
Ecco tutte le variabili dei tasti: square, triangle, circle, cross, up, down, left, right, start, select, l (Left trigger), r (Right trigger)
if pad.cross:
break
Se viene premuto il tasto X (if pad.cross: è equivalente a if pad.cross == True:) viene interrotto il ciclo infinito con l'istruzione break.
Spero che la "lezione" sia chiara e che sia utile a qualcuno.
Tutorial by Sakya.