Buenas,,...en Kabura hacia la reposicion de un sprite eliminado mediante las Logicas ORA, EOR y AND,...partia de la base de que no sabia si estaba por encima o debajo de la barrera y dependia de donde lo queria situar si por debajo o por encima...
Las Logicas no me funcionaron mal, pero no dieron el resultado que yo queria como vereis en alguna reposicion en Kabura que crearon un bug,...en el nuevo Proyecto quiero hacerlo de otra forma...
Lo que voy a hacer es que el sprite me diga donde esta,...si por encima o por debajo, de esta forma sencilla ya no voy a ciegas y el manejo es mucho mas sencillo que si me encomiendo a Logicas,..si esta abajo lo pongo arriba o lo mantengo abajo y si esta arriba lo pongo abajo o lo mantengo arriba,..esto se traduciria en que tomo la accion que quiero (lo situo donde quiero) tras chequear las posiciones 0 y 255 de X de dicho sprite, me dice donde esta y lo pongo donde quiero...
Pero como me dice el sprite donde esta?, si arriba o abajo, voy a utilizar la posicion $D010 para ello y leere (chequeare el estado) solamente del bit que yo quiero (bit correspondiente al sprite que yo quiero) con lo cual se el resultado es 0 esta por debajo, si el resultado es 1 esta por encima...
Para leer el bit correspondiente voy a utilizar ASL (desplazamiento hacia la izquierda) o LSR (desplazamiento hacia la derecha), pongamos un ejemplo para el sprite#2,....con lo cual...
LDA $D010 ; CARGO POSICION QUE CONTROLA ASUNTO
ASL ; DESPLAZO EL ACUMULADOR UN BIT A LA IZQUIERDA
ASL ; DESPLAZO OTRO BIT EL ACUMULADOR HACIA LA IZQUIERDA
; AHORA YA ESTOY SOBRE EL BIT QUE CONTROLA EL SPRITE 2
BCS ARRIBA ; HACE COMPARACION, SI ES 0 ESTA ABAJO Y MANDA A SUBRUTINA ARRIBA
; QUE SITUA POR ENCIMA DE BARRERA
; SI ESTA POR ENCIMA CONTINUA PROGRAMA CON LO QUE QUIERA.....POR
; EJEMPLO PONGO EL SPRITE 2 POR DEBAJO
LDA $D010
AND #%11111011 ; CARGA VALOR SPRITE O ENCENDIDO
STA $D010 ; APLICA A $D010, POR ENCIMA DE 255
RTS
ARRIBA
LDA $D010
ORA #%00000100 ; CARGA VALOR SPRITE 1 ENCENDIDO
STA $D010 ; APLICA A $D010 Y PONE SPRITE 2 POR ENCIMA
RTS
Todo esto es teoría ya que no lo he probado,..os pregunto,..sería factible, la metodologia es correcta?
Saludos a Todos.