| Programació | Gràfics | Recursos CITCEA | ||
| Tutorial | Exemples | Projectes | Inici |
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

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