1 of 31

Pyxel

Motor Retro para Python

Víctor Suárez García - La jaquería

2 of 31

Contenido

  1. Introducción
  2. Instalación
  3. Hello Pyxel
  4. Uso de Pyxel
  5. Editor de Recursos
  6. Ejemplos de Uso
  7. Referencias

3 of 31

¿Quién soy y que vengo a hacer aquí?

Soy Víctor Suárez; ingeniero en informática por la UAL que siempre está tratando de aprender y de cacharrear con distintas tecnologías actuales o retro.

Pertenezco a la asociación La Jaquería una asociación de Almería, que tiene un club de desarrollo retro.

  • Twitter: @Zerasul
  • Github: Zerasul

4 of 31

01

Introducción

5 of 31

Introducción

¿Qué juego es?

¿Para que Sistema?

6 of 31

Introducción

¿Qué juego es?

Contra

¿Para que Sistema?

NES

7 of 31

Introducción

Existe un motor que nos permite realizar juegos con dicha estética solo usando 16 colores*.

Utiliza el lenguaje LUA y se llama PICO-8.

8 of 31

Introducción

PICO-8 tiene un display de 128x128 píxeles a 16 colores.

Además de tener soporte para varios Sprites, sonido,etc.

9 of 31

Pyxel

Pyxel es un motor retro para crear videojuegos usando Python.

Permite usar Juegos con estética Retro usando solo 16 colores y una serie de características concretas.

10 of 31

Pyxel

Pyxel ofrece las siguientes características:

  • Multiplataforma (Windows, MacOs y Linux)
  • Programable con Python aunque está escrito en Rust.
  • Paleta de 16 colores
  • 3 bancos de memoria de 256x256 píxeles cada uno.
  • 3 Mapas de 256x256 píxeles cada uno.
  • 4 Canales con 64 sonidos
  • Música y Sonido Combinable.
  • Compatible con Ratón, Teclado y Mando
  • Editor de Imágenes, Mapa y sonido Integrado

11 of 31

Pyxel

Paleta de Colores de Pyxel:

12 of 31

02

Instalación

13 of 31

Instalación de Pyxel

Para instalar pyxel, podemos usar el gestor de paquetes Pip, para instalarlo en nuestra instalación python. Se requiere la versión 3.7 o superior para usar Pyxel.

NOTA: para Linux, instalar la dependencia libsdl2-dev

14 of 31

03

Hello Pyxel

Ejemplo Inicial

15 of 31

Ejemplo Inicial

NOTA: Todos los ejemplos están disponibles en: https://github.com/LaJaqueria/pyxel_workshop

16 of 31

Ejemplo Inicial

Veamos algunas funciones de Pyxel:

  • La función Init, inicializa el motor y la ventana además del título de esta.

  • La función Run, arranca la aplicación, pero necesita pasar por parametro 2 funciones, la función update y la función draw
    • La función update, se utiliza para actualizar en cada frame los valores del juego como los controles, física etc… se ejecuta en cada frame.
    • La función draw, se utiliza para dibujar todo lo que necesitemos por pantalla. Se ejecuta en cada frame.

17 of 31

Ejemplo Inicial

Para ejecutar este ejemplo, usaremos la siguiente instrucción:

18 of 31

04

Uso de Pyxel

Comandos e instrucciones para ejecutar Pyxel

19 of 31

Uso de Pyxel

  • Ejecutar un Script Python con Pyxel:

  • Crear o editar un paquete de Recursos (.pyxres)

  • Generar un Paquete Pyxel (.pyxapp)

  • Ejecutar un paquete Pyxel (.pyxapp)

20 of 31

05

Editor de Recursos

21 of 31

Editor de Recursos

Pyxel, trae integrado un editor de recursos para todos los recursos que necesitará el juego:

  • Editor de Objetos
  • Editor de mapas
  • Editor de Sonido
  • Editor de Música

22 of 31

Editor de Objetos

El editor de Objetos, nos va a permitir editar cada objeto que se encuentre en los 3 bancos de imágenes de 256x256. Recordemos que solo tenemos 16 colores.

Podemos importar una imagen arrastrándola al editor y se almacenará en dicho banco.

NOTA: No olvides guardar!!

23 of 31

Editor de Mapas

El editor de Mapas, permite dibujar un mapa a partir de los elementos que componen el banco de imágenes.

Podemos tener hasta 7 mapas usando los 3 bancos de imágenes. Además de poder importarlo a nuestro juego.

NOTA: No olvides guardar!!

24 of 31

Editor de Sonidos

El editor de Sonidos, permite generar cada uno de los 64 sonidos disponibles para nuestro juego.

Los sonidos son MIDI y permiten generar distintos sonidos con distintos efectos.

NOTA: No olvides guardar!!

25 of 31

Editor de Música

El editor de música, permite orquestar los distintos sonidos generados con el editor de sonidos en los 4 canales disponibles.

NOTA: No olvides guardar!!

26 of 31

06

Ejemplos y Uso de la API

27 of 31

Ejemplo 1: texto y colores

En este ejemplo vemos el texto “Hello Jaqueria” y podemos cambiar el color usando las direcciones del teclado.

Podemos ver el uso de las funciones btnp y text

  • La función btnp devuelve True si se ha pulsado la tecla que se pasa por parámetro. Ej KEY_RIGTH.
  • La función text dibuja por pantalla un texto en un color definido.

28 of 31

Ejemplo 2: Sprites

En este ejemplo, podemos ver a un personaje que podemos mover de derecha a izquierda.

Este ejemplo se basa en copiar imágenes del banco de imágenes correspondiente formando así una animación.

En este ejemplo se usa la función blt; que copia un fragmento del banco de imagen y lo muestra por pantalla.

También se usa la función btn que devuelve True mientras se pulse la tecla pasada por parámetro.

29 of 31

Ejemplo 3: Mapa y Sonido

En este ejemplo, podemos ver ya un mapa y un personaje por el que podemos movernos.

En este caso usamos las funciones anteriormente mencionadas y además las siguientes:

  • La función playm, que permite ejecutar un sonido una vez o en bucle.
  • La función camera, establece la cámara para poder realizar scroll.
  • La función bltm, permite dibujar un fragmento de mapa.

30 of 31

Referencias

31 of 31

Muchas Gracias