HispaMSX

RE: Colorear SPRITES

2003-10-20 18:34:49
De todas maneras, como dice Eduardo, sin código lo que explicas es 
un tanto ambiguo.

   Hola.

   Gracias, David y Robsy. Sé que es difícil resolver el problema 
sin ver el código.

   He seguido con las pruebas y os comento lo que me ha pasado:

   He definido tres muñecos idénticos con tres SPRITES cada uno, que 
resultan ser el mismo. La diferencia estriba en los colores que 
luego les doy. Si los 96 datos de los 3 SPRITES de 16x16 están en la 
etiqueta SPRITES01 los transfiero mediante bios de este modo:

LD HL,SPRITES01
LD DE,14436
LD BC,96
CALL #5C ;Transfiero 3 SPRITES de 16x16

LD HL,SPRITES01
LD DE,14432 ;14436+96
LD BC,96
CALL #5C ;Lo mismo para el segundo muñeco.

LD HL,SPRITES01
LD DE,14528 ;14436+96+96
LD BC,96
CALL #5C ;Lo mismo para el tercero.

Los colores mediante:

LD A,1
LD HL,6915
CALL #4D

LD A,10
LD HL,6919 ;6915+4
CALL #4D

LD A,15
LD HL,6923 ;6915+8
CALL #4D ;Esto le daría al primer muñeco los colores negro, amarillo
         ;y blanco, por ejemplo.

Y las coordenadas van del mismo modo:

LD A,100
LD HL,6912
CALL #4D

LD A,50
LD HL,6913
CALL #4D ;Esto sería (50,100) para el primer SPRITE del primer muñeco
         ;6916,6917 y 6920,6921 para el segundo y tercer SPRITE del
         ;muñeco, de modo que tendría un muñeco con tres colores en
         ;(50,100). Las definiciones de los 3 SPRITES no se pisan,
         ;obviamente.

   Tras colocar los SPRITES en pantalla y salir al BASIC veo que al 
hacer un VPOKE 6912,20, VPOKE 6916,40 y VPOKE 6920,60 (para separar 
los tres SPRITES del primer muñeco) se ven los tres SPRITES, con sus 
tres colores correspondientes (negro el primero, amarillo el segundo 
y blanco el tercero) pero todos tienen la forma del primer SPRITE 
(lo cual me suena a fallo tonto mío de esos tan tontos que uno no 
puede ver; parecidos a los CALL sin un RET al final de la rutina a 
la que llamas y esas cosas).

   Que me estoy currando mi primer juego completamente en 
ensamblador (y cagón al máximo) para el concurso convocado por Robsy 
a ver si llego a tiempo ... (tengo bastante avanzado pero con el 
problema de los SPRITES).

   Un saludo, y seguro que alguien ya ha visto el problema (o quizá 
todo el mundo menos yo).


<Anterior en la conversación] Conversación actual [Siguiente en la conversación>