Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:pyxel

¡Esta es una revisión vieja del documento!


Pyxel

Biblioteca de Python para desarrollar juegos retro.

Inspirado en consolas retro, aplica varias restricciones como una paleta de 16 colores y 4 canales de audio.

Características

  • Multiplataforma (Windows, Mac, Linux y web)
  • Programable con Python (aunque está hecho en Rust)
  • Paleta de 16 colores
  • 3 bancos de imágenes de 256×256
  • 8 tilemaps de 256×256
  • 4 canales con 64 sonidos diferentes
  • 8 pistas de música combinando cualquier sonido
  • Compatible con teclado, ratón y mando
  • Herramientas para la edición de imágenes y sonidos
  • Bancos, canales y colores extensibles por el usuario

Instalación

En Linux, sería de la siguiente manera:

sudo pip3 install -U pyxel

Necesario el paquete SDL2 (libsdl2-dev en Ubuntu), Python3 (version 3.8 o superior), y python3-pip

En Arch Linux, está disponible mediante el paquete python-pyxel, en AUR.

Hola, mundo

Ejemplo más sencillo que muestra un texto por pantalla:

import pyxel
 
class App:
    def __init__(self):
        pyxel.init(160,120,title="Hello, world")
        pyxel.run(self.update, self.draw)
 
    def update(self):
        # Se ejecutará 60 veces por segundo (FPS)
        if pyxel.btnp(pyxel.KEY_Q):
            pyxel.quit()
 
    def draw(self):
        pyxel.cls(0)
        pyxel.text(55, 41, "Hello, world!", 5)
 
App()

Si guardamos el fichero como main.py, lo podríamos ejecutar con:

pyxel run main.py

pyxel.init

Esta función inicializa el motor de Pyxel y genera la ventana.

pyxel.init(160,120,title="Hello, world")

La anterior instrucción crea una ventana de 160 x 120 pixeles con el título Hello, world.

Firma de la función:

init(width, height, [title], [fps], [quit_key], [display_scale], [capture_scale], [capture_sec])
  • width: anchura de la pantalla.
  • height: altura de la pantalla.
  • title: título de la ventana.
  • fps: frames por segundo.
  • quit_key: tecla para cerrar la aplicación.
  • display_scale:
  • capture_scale
  • capture_sec: duración máxima (segundos) de la captura de vídeo.

pyxel.run

Esta función inicia la aplicación Pyxel. Necesita recibir por parámetro 2 funciones:

  • update: actualiza los valores del juego (controles, física, etc) en cada frame.
  • draw: dibuja elementos en pantalla
pyxel.run(self.update, self.draw)

Ejecutar una aplicación

Al tratarse de scripts en Python, los juegos hechos con Pyxel se pueden lanzar de la siguiente manera:

python mijuego.py

También puede ejecutarse con el comando pyxel run:

pyxel run mijuego.py

Si queremos que Pyxel esté pendiente de los cambios en un directorio y relance el programa cuando esto suceda:

pyxel watch <DIRECTORIO_CON_APLICACION_PYXEL>

Controles durante la ejecución de la aplicación

Tecla Descripción
Esc Cierra la aplicación
Alt + 1 Guarda una captura de pantalla en el escritorio
Alt + 2 Reinicia el tiempo de inicio de grabación de una captura de vídeo
Alt + 3 Guarda una captura de vídeo en el escritorio (de 10 segundos)
Alt + 8 Alterna el escalado de pantalla
Alt + 9 Cambia entre modos de pantalla (Crisp/Smooth/Retro)
Alt + 0 Alterna el monitor de rendimiento (fps/update time/draw time)
Alt + Enter Alterna pantalla completa
Shift + Alt + 1 Guarda el banco de imágenes 0 al escritorio
Shift + Alt + 2 Guarda el banco de imágenes 1 al escritorio
Shift + Alt + 3 Guarda el banco de imágenes 2 al escritorio
Shift + Alt + 0 Guarda la paleta de colores actual en el escritorio

Distribuir una aplicación

Paquete Pyxel (pyxapp)

Pyxel dispone de un formato propio de distribución multiplataforma. Se crea de la siguiente manera:

pyxel package <DIRECTORIO_APLICACION_PYXEL> <FICHERO_PRINCIPAL>

Tanto los ficheros con el código como los recursos estarán contenidos en un único fichero.

El paquete creado se puede ejecutar con:

pyxel play <fichero.pyxapp>

Ejecutable Windows

pyxel app2exe <fichero.pyxapp>

Utiliza PyInstaller para crear el ejecutable

Fichero HTML

pyxel app2html <fichero.pyxapp>

El fichero .html resultante podremos abrirlo con cualquier navegador y el juego se ejecutará en él.

Pyxel utiliza Pyodide para que código Python se pueda ejecutar en un navegador

Pyxel Editor: editor de recursos

Pyxel incluye un editor visual desde el que podremos crear recursos:

  • Imágenes (sprites)
  • Tilemap
  • Efectos de sonido
  • Música

Para abrir este editor:

pyxel edit <fichero.pyxres>

Si no indicamos ningún nombre de fichero, se creará uno con el nombre my_resource.pyxres.

Juegos de ejemplo

Recursos

informatica/programacion/python/pyxel.1742377149.txt.gz · Última modificación: por tempwin