Pintando sprites de 16x16 en ensamblador

Chit chat general. Habla con los MojonTwins y con los amigos de los MojonTwins. Reza a Vah-ka. Delinque. Aviso: está PROHIBIDO tirarse peos fuerte. Si les cortas el pescuezo, vale.

Moderador: na_th_an

Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Pintando sprites de 16x16 en ensamblador

Mensajepor na_th_an » Mar, 10 Dic 2013, 10:29

$this->bbcode_second_pass_quote('radastan', 'E')s que mi idea es muy sencilla: un par de funciones para recoger y restaurar el fondo. Es decir, algo en plan:

get_background_x16 (x,y,puntero);
put_background_x16 (x,y,puntero);

Sólo tienes que definir un espacio de memoria para cada sprite que quieras mover, donde se almacenará el fondo, y usar esas dos funciones entre la que imprime el sprite. Tendré que hacer subversiones para cada tamaño, al igual que las rutinas de sprites, pero es que la librería va a ocupar una "mierda" en tamaño gracias a que es en ensamblador y no hay dependencias.


Esta era la idea inicial, por ejemplo, en Subacolib (la que lleva el Maritrini tipo Saimazoom), pero no funciona. Hacer todo el proceso de almacenado y restaurado de fondo desde el lenguaje "host" (C o Basic, me refiero) es mucho más costoso computacionalmente y apenas te da tiempo de gestionar un sprite antes de que se te acabe el tiempo de borde (que es el que tienes para que no haya parpadeos sin tener que hacer cosas raras). Por eso tuve que añadir el gestionado automático de sprites a la biblioteca, porque si no, no había forma de hacer un juego en condiciones.
Como diría Rorshach: "Urm..."