Creació de jocs amb PyBadge

Programació Gràfics     Recursos CITCEA
Tutorial Exemples Projectes   Inici

Afegim moviment

Un cop ja tenim creat el fons i els sprites anem a fer que un dels sprites es mogui per la pantalla quan premem els polsadors de desplaçament. La lectura dels polsadors la farem seguint el que s'explica a la descripció de la placa. Guardarem la lectura anterior dels polsadors per evitar moure el personatge si el polsador no s'ha deixat anar. El programa seria el següent:

import board
import keypad
import displayio
import adafruit_imageload
# Noms dels botons
K_X = 0
K_O = 1
K_START = 2
K_SELECT = 3
K_RIGHT = 4
K_DOWN = 5
K_UP = 6
K_LEFT = 7
# Creem un objecte per a la pantalla
pant = board.DISPLAY
# Carreguem el fitxer amb la imatge
imatge, palette = adafruit_imageload.load("/tiles.bmp",
                                                bitmap=displayio.Bitmap,
                                                palette=displayio.Palette)
# Creem l'sprite (personatge)
pers = displayio.TileGrid(imatge, pixel_shader=palette,
                            width = 1, height = 1,
                            tile_width = 16, tile_height = 16,
                            default_tile = 7)
# Creem un mosaic per al taulell
taulell = displayio.TileGrid(imatge, pixel_shader=palette,
                            width = 10, height = 8,
                            tile_width = 16, tile_height = 16)
# Definim un grup per a l'sprite
grup_pers = displayio.Group(scale=1)
grup_pers.append(pers)
# Definim un grup per al taulell
grup_taulell = displayio.Group(scale=1)
grup_taulell.append(taulell)
# Creem un grup per englobar-ho tot
grup = displayio.Group()
# Afegim els grups anteriors al global
grup.append(grup_taulell)  # Primer el taulell
grup.append(grup_pers)  # Despres el personatge
# Objecte per llegir els botons
pad = keypad.ShiftRegisterKeys(
    clock=board.BUTTON_CLOCK,
    data=board.BUTTON_OUT,
    latch=board.BUTTON_LATCH,
    key_count=8,
    value_when_pressed=True,
)
# Fem que el fons dels personatges sigui transparent
palette.make_transparent(2)
# Dibuixem el taulell
# Cantonades
taulell[0, 0] = 0  # Superior esquerra
taulell[9, 0] = 2  # Superior dreta
taulell[0, 7] = 8  # Inferior esquerra
taulell[9, 7] = 10 # Inferior dreta
# Vores superior i inferior
for x in range(1, 9):
    taulell[x, 0] = 1  # Superior
    taulell[x, 7] = 9  # Inferior
# Vores laterals
for y in range(1, 7):
    taulell[0, y] = 4  # Esquerra
    taulell[9, y] = 6  # Dreta
# Centre del taulell
for x in range(1, 9):
    for y in range(1, 7):
        taulell[x, y] = 5
# Situem el personatge
cx = 4
cy = 3
# Mostra el grup a la pantalla
pant.root_group = grup
while True:
    boto_act = pad.events.get()
    if boto_act and boto_act.pressed:
        boto = boto_act.key_number
        if boto == K_RIGHT and cx < 8:
            cx += 1
        if boto == K_LEFT and cx > 1:
            cx -= 1
        if boto == K_DOWN and cy < 6:
            cy += 1
        if boto == K_UP and cy > 1:
            cy -= 1
    pers.x = 16 * cx
    pers.y = 16 * cy

 

 

 

 

 

 

 

 

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.