Empezar

Flujos creativos prácticos

Hitbox de sprites pixel art: separa la colisión de los píxeles visibles

Escultura de zorro de color carbón dentro de un marco ámbar sobre papel marfil
Ilustración editorial. El tutorial utiliza capturas independientes del espacio real de Ciyo.

La cola de un zorro puede verse bien y hacer que un juego de plataformas resulte injusto si cada píxel visible entra en su rectángulo de colisión. Decide qué zona debe colisionar antes de exportar el personaje.

Creamos en Ciyo un zorro ficticio de 32×32 mediante código y una imagen de inspección independiente ampliada 8×. El ejemplo muestra cómo entregar juntos un sprite y sus coordenadas de colisión. Es una ilustración determinista, no una prueba de un modelo de imagen ni una integración con un motor de juego.

Define primero el contrato de coordenadas

Entrega al desarrollador las dimensiones nativas, el origen, la dirección de los ejes y el significado del rectángulo. Aquí el origen está en la esquina superior izquierda de la imagen de 32×32; x crece hacia la derecha e y hacia abajo. El tamaño de visualización del lienzo no cambia estos valores.

El hitbox elegido empieza en x=8, y=7 y mide 16×23 píxeles nativos. Sus bordes exclusivos derecho e inferior son 24 y 30. Ambos quedan dentro de 32. Son decisiones de diseño ilustrativas: ajusta tu rectángulo al movimiento y las colisiones de tu juego.

Contrato de colisión del zorro ficticio
CampoValorSignificado
Imagen32×32Dimensiones del PNG nativo
OrigenEsquina superior izquierdaCoordenadas anteriores al escalado de visualización
Hitbox8, 7, 16, 23x, y, ancho, alto
Bordes exclusivos24, 30x + width; y + height
Escala de prueba8×Solo para inspección, 256×256

Pide una superposición independiente

Abre un proyecto nuevo en Ciyo e incluye las dimensiones de origen y el rectángulo en la misma solicitud. Pide al agente de diseño que conserve el archivo nativo y dibuje la superposición de colisión en una copia. Solicita también un manifiesto para poder leer las coordenadas aunque la vista del lienzo sea pequeña.

Usamos Ciyo Agent y herramientas de código. El prompt pide expresamente un recurso provisional generado por código y evita la generación de imágenes o vídeo de pago. Para un personaje de producción, aporta tu sprite aprobado y pide las mismas comprobaciones sobre ese archivo adjunto.

Vista completa de Ciyo con la solicitud del hitbox del zorro
Entrada real de Ciyo: se especifican el rectángulo nativo y la conservación del original antes de crearlo.
Pruébalo en Ciyo
Crea un sprite ficticio de zorro pixel art de 32x32 usando código determinista, con fondo transparente y sin generador de pago. Define aparte un hitbox de colisión x=8 y=7 width=16 height=23 en coordenadas nativas del sprite. Dibuja una superposición coloreada del hitbox en un PNG de prueba independiente ampliado 8x mediante vecino más cercano, conservando intacto el sprite original. Entrega el PNG nativo, el PNG de prueba y un manifiesto JSON de texto con las dimensiones nativas, el hitbox y el origen en la esquina superior izquierda. Explica que los límites alfa visibles no tienen por qué ser los límites de colisión. Añade el original y la prueba al lienzo. Comprueba dimensiones nativas, coordenadas enteras, rectángulo dentro de la imagen y hash de píxeles del original sin cambios después de crear la superposición. No afirmes una integración con un motor de juego. Es un ejemplo ilustrativo generado en el espacio real de Ciyo.

Interpreta de forma distinta los dos contornos

El resultado incluye un PNG nativo y una prueba de 256×256. La superposición azul marca nuestro rectángulo de colisión. El contorno discontinuo magenta marca los límites alfa visibles. El damero es un fondo de inspección y no forma parte del sprite nativo.

Los límites visibles son x=5, y=0, ancho=26, alto=31. Las orejas y la cola sobresalen del rectángulo de colisión. Por eso conviene separar ambas mediciones: el dibujo visible describe la apariencia y la forma de colisión elegida expresa la intención de juego.

Lienzo completo de Ciyo con el zorro nativo y su superposición de hitbox
Original y prueba reales generados por código. La colisión no coincide con la silueta visible.

Inspecciona el archivo nativo y el manifiesto

Descarga el archivo nativo, no una captura del lienzo. Comprueba que mida 32×32 y tenga transparencia alfa real. Lee el manifiesto en unidades nativas y confirma que x + width ≤ ancho de la imagen e y + height ≤ alto de la imagen. Si importa conservar el original, compara su hash antes y después de crear la prueba.

No incluyas la prueba en el sprite publicado

El hash de píxeles decodificados del ejemplo conservado coincide con el comunicado por el agente. La superposición está en otro archivo: no la publiques como sprite salvo que quieras mostrar deliberadamente el dibujo de depuración en el juego.

Vista completa de Ciyo con la comprobación del agente para el ejemplo de hitbox
Comparación real del agente entre límites alfa y de colisión, con el original y la prueba independiente visibles.

Prueba la colisión en el entorno del juego

Importa el original y convierte el rectángulo a los ajustes de colisión de tu motor. Explica cualquier desplazamiento del pivote. Prueba paredes, suelo, huecos estrechos e interacciones al tamaño de visualización previsto para el personaje. Un archivo con el rectángulo correcto no demuestra que el juego resulte justo.

La documentación de física de Godot trata las formas de colisión como objetos independientes. Esa distinción respalda esta entrega, pero no importamos el ejemplo en Godot ni en otro motor. Las reglas de movimiento, los fotogramas activos de impacto y los intervalos entre daños necesitan su propia implementación y comprobación.

Preguntas prácticas

¿El hitbox coincide automáticamente con el rectángulo alfa?

No. Elegimos intencionadamente un rectángulo menor. Usa los límites visibles como referencia y decide los límites de colisión para el juego.

¿Debo usar las coordenadas de 256×256 de la prueba?

No. El manifiesto utiliza el sistema nativo de 32×32. La prueba ampliada sirve solo para inspeccionar.

¿Se probó en un motor de juego?

No. Comprobamos el PNG y el manifiesto conservados; el comportamiento de juego requiere una prueba aparte.

Prepara un sprite con coordenadas de colisión explícitas

Empieza con un ejemplo verificado en Ciyo. Conserva el original y revisa el resultado exportado antes de usarlo en tu proyecto.