Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Cómo pasar juegos a diferentes archivos, herramientas, software.
Toni
Me voy lanzando
Me voy lanzando
Mensajes: 55
Registrado: Sab 04 Sep , 2010 6:06 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor Toni » Lun 04 Mar , 2024 2:05 pm

Gracias, isi. Ha funcionado!

Aunque he cambiado el orden en el que salen las coordenadas, pues en el plugin primero sale dw coordenada x, coordenada y
En la librería es justo al revés

Ahora falta que en Tiled puedan invertir la coordenada y, pues en esa herramienta la dirección 0,0 de y está arriba a la izquierda y en 8bp está en la parte inferior izquierda

Gracias de nuevo!

Avatar de Usuario
isi
Forum Addict
Forum Addict
Mensajes: 435
Registrado: Lun 10 Abr , 2006 7:34 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor isi » Lun 04 Mar , 2024 5:15 pm

Gracias, isi. Ha funcionado!

Aunque he cambiado el orden en el que salen las coordenadas, pues en el plugin primero sale dw coordenada x, coordenada y
En la librería es justo al revés

Ahora falta que en Tiled puedan invertir la coordenada y, pues en esa herramienta la dirección 0,0 de y está arriba a la izquierda y en 8bp está en la parte inferior izquierda

Gracias de nuevo!
Si editas el Tileset, a la izquierda tienes la ventana de propiedades. Dentro de ellas hay una que se llama "Object Alignment" que estará por defecto en "Top Left", puedes cambiarla a "Bottom Left"

Toni
Me voy lanzando
Me voy lanzando
Mensajes: 55
Registrado: Sab 04 Sep , 2010 6:06 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor Toni » Mar 05 Mar , 2024 2:02 pm

Perdona, isi, no consigo hacerlo

Puedes poner un ejemplo?

Me interesaría que al exportar a 8bp, si dibujo el objeto en la parte inferior, el valor de "y" fuese también inferior

Actualmente si lo hago, me pone como dirección "y" la 600 y pico (es decir, está invertida la posición y)

Es decir, si coloco el objeto en la parte inferior del mapa en tiled me pusiese entonces ( por ejemplo) en la exportación a 8bp:

dw 0, 0, ROCA

y si lo pusiese arriba del todo, entonces:

dw 6xx, 0

En un mapa en horizontal no habría problema, pues lo colocaría arriba del todo en tiled, pero con un scroll multidireccional o vertical, es algo lioso

Gracias!

Avatar de Usuario
isi
Forum Addict
Forum Addict
Mensajes: 435
Registrado: Lun 10 Abr , 2006 7:34 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor isi » Mar 05 Mar , 2024 5:36 pm

Tienes que editar el tileset, y en el menú Tileset - Tileset Properties activas el panel de opciones. Una vez cambiado a "Bottom-Left" tienes que guardar los cambios en el tileset. Adjunto un vídeo con el proceso que hay que seguir.

https://www.youtube.com/watch?v=IvcJCC0JEU8

Toni
Me voy lanzando
Me voy lanzando
Mensajes: 55
Registrado: Sab 04 Sep , 2010 6:06 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor Toni » Mar 05 Mar , 2024 8:18 pm

Perdona, me expliqué mal

No quería decir los objetos

Quería decir si es posible invertir la coordenada "y" del mapa

Actualmente, en tiled la y va en sentido descendente, empezando por la parte superior izquierda del mapa

Me pregunto si se puede invertir, y que la coordenada 0,0 de "y" empieze en la parte inferior izquierda.

Avatar de Usuario
isi
Forum Addict
Forum Addict
Mensajes: 435
Registrado: Lun 10 Abr , 2006 7:34 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor isi » Mar 05 Mar , 2024 8:47 pm

Ah, no te había entendido. Para eso puedes restar la altura total del tilemap menos la posición "y" del tile

Código: Seleccionar todo

"use strict";

const export8BPAction = tiled.registerAction("Export8BPAction", export8BPActionFunction);
export8BPAction.text = "Exportar 8BP";
export8BPAction.shortcut = "Ctrl+K";

function export8BPActionFunction(action) {
let tileMap = tiled.activeAsset;
if (!tileMap.isTileMap) return;

let tiles = tileMap.currentLayer;
let tilemapHeight = tileMap.height * tileMap.tileHeight;

for (let i = 0; i < tiles.objectCount; i++) {
let currentTile = tiles.objectAt(i);
let tileY = tilemapHeight - currentTile.y;
tiled.log("dw " + tileY.toString() + ", " + currentTile.x.toString() + ", " + currentTile.tile.className + "; " + i);
}
}

tiled.extendMenu("Edit", [
{ action: "Export8BPAction", before: "SelectAll" },
{ separator: true }
]);

Toni
Me voy lanzando
Me voy lanzando
Mensajes: 55
Registrado: Sab 04 Sep , 2010 6:06 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor Toni » Mié 06 Mar , 2024 1:40 pm

Gracias, isi. Ha funcionado de maravilla

Eso si. Si el objeto tiene 32x32, las celdas en Tiled han de ser de 16 de ancho por 32 de alto, pues si la pongo de 32 de ancho los objetos aparecen separados en el juego

Poniéndolas de 16 de ancho, aunque en Tiled de la sensación de que solo colocas la mitad del sprite, en realidad lo colocas entero y junto

Todo esto si quieres hacer los objetos juntos, claro

Comparto un archivo comprimido donde hay 2 videos con los ejemplos y 2 fotos para que se vea como queda cuando salvas el mapa

https://mega.nz/file/7oEGmJhD#hVBTh2UT2 ... TP3JjyIGb8

Gracias!

PD: Algo he tocado que cuando pulso ctrl+k no genera el listado de 8bp en el panel de control. Vamos, no sale nada

Avatar de Usuario
isi
Forum Addict
Forum Addict
Mensajes: 435
Registrado: Lun 10 Abr , 2006 7:34 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor isi » Mié 06 Mar , 2024 6:22 pm

El sprite de la montaña creado en 8BP tiene 16 bytes de ancho? Quizá sea porque cada byte tiene la información de 2 pixels, y por eso en 8BP el ancho es de 16 bytes, y en Tiled de 32 pixels (es decir, 8BP usa la anchura en bytes, y Tiled en pixels). Eso puedes solucionarlo creando todo en 32x32, y dividiendo en el script currentTile.x entre 2 para que te genere el equivalente en bytes.

En cuanto a que no te funcione Ctrl+K, quizá si estás haciendo pruebas y has creado otra copia del script, te aparezca 2 veces en el menú y entre en conflicto el atajo de teclado.

Edit: Te adjunto el script con el cambio por si acaso no me he explicado bien, solo es dividir entre 2 la coordenada x del tile

Código: Seleccionar todo

"use strict";

const export8BPAction = tiled.registerAction("Export8BPAction", export8BPActionFunction);
export8BPAction.text = "Exportar 8BP";
export8BPAction.shortcut = "Ctrl+K";

function export8BPActionFunction(action) {
let tileMap = tiled.activeAsset;

if (!tileMap.isTileMap)
return;

let tiles = tileMap.currentLayer;
let tilemapHeight = tileMap.height * tileMap.tileHeight;

for (let i = 0; i < tiles.objectCount; i++) {
let currentTile = tiles.objectAt(i);
let tileX = currentTile.x / 2;
let tileY = tilemapHeight - currentTile.y;
tiled.log("dw " + tileY.toString() + ", " + tileX.toString() + ", " + currentTile.tile.className + "; " + i);
}
}

tiled.extendMenu("Edit", [
{ action: "Export8BPAction", before: "SelectAll" },
{ separator: true }
]);

Toni
Me voy lanzando
Me voy lanzando
Mensajes: 55
Registrado: Sab 04 Sep , 2010 6:06 pm

Re: Plugin - Exporta a 8BP (Maxam/WinApe assembler) desde Aseprite

Mensajepor Toni » Jue 07 Mar , 2024 1:58 pm

Gracias, isi!

Ahora va perfecto.
En cuanto a lo de que no me generara el listado en el panel era porque no había iniciado un proyecto
Seguramente debió ser al "reiniciar" de cero Tiled


Gracias de nuevo!


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic