¡Esta es una revisión vieja del documento!
Tabla de Contenidos
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_scalecapture_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>
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.
