PSP-Python lezione n.1 (hello world)

« Older   Newer »
 
  Share  
.
  1. 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
     
    .
0 replies since 19/9/2008, 19:21   252 views
  Share  
.