Karoshi MSX Community

Desarrollo MSX => Desarrollo (Español/Spanish) => Mensaje iniciado por: Tragamanzanas en 13 de Septiembre de 2009, 05:36:33 pm



Título: Movimiento con colores
Publicado por: Tragamanzanas en 13 de Septiembre de 2009, 05:36:33 pm
Estoy intentando crear sensación de movimiento cambiando el color de los caracteres. Me explico, por ejemplo tengo la letra A en la izquierda de la pantalla y quiero que se mueva hasta la derecha, pero lo quiero conseguir de la siguiente manera:las letras B y C las redefino para que sean una A y luego lleno toda la fila de letras A (ABCABCABCABC) y el movimiento lo intento conseguir iluminando la A, luego apagandola y mostrando la B y lo mismo con la C, para volver a la A.
En teoría quiero que sea como las luces de navidad que encendiendose y apagandose crean la sensación de movimiento, pero con el ejemplo anterior solo consigo ese efecto hasta C, luego se nota que vuelve a A (·$&*@)
Se que es rebuscado y hay maneras mas fáciles de conseguirlo, pero para lo que estoy pensando utilizar este movimiento me interesa que sea de esta forma (ademas de cabezoneria mia).
¿Alguna idea para conseguirlo utilizando el mínimo numero de colores?


Título: Re: Movimiento con colores
Publicado por: Dioniso en 13 de Septiembre de 2009, 06:14:51 pm
Prueba con un espacio mayor de apagado entre letras "A". ¿Qué tal sería ABCDE y el E vuelves a poner una A encendida de modo que quede algo como A...A...A...A? (Los puntos serían BCD "apagados".)


Título: Re: Movimiento con colores
Publicado por: Tragamanzanas en 14 de Septiembre de 2009, 12:48:12 pm
Parece que la solución no pasa por alargar la serie, ya que crea sensación de movimiento durante un poco mas de rato, pero al volver a empezar la serie se "nota".


Título: Re: Movimiento con colores
Publicado por: Dioniso en 14 de Septiembre de 2009, 01:39:57 pm
pues entonces me da a mí que va a ser algo en el código...


Título: Re: Movimiento con colores
Publicado por: OKI09 en 14 de Septiembre de 2009, 03:42:52 pm
Prueba este ejemplo.  ;)

Esta hecho a toda prisa pero funciona como creo que quieres.

Código:

.BIOS
.PAGE 1
.ROM

CHRTBL EQU $0000
NAMTBL EQU $1800
CLRTBL EQU $2000
CLIKSW  EQU     $F3DB
FORCLR  EQU     $F3E9

DI
IM 0
LD SP,$F380

INICIO: LD HL,FORCLR
LD [HL],$0F
INC HL
LD [HL],$01
INC HL
LD [HL],$01
XOR A
LD [CLIKSW],A
CALL INIGRP
CALL ERAFNK
LD BC,$E201
CALL WRTVDP
LD A,3
LD [MOVIMIENTO],A

LD HL,PATRONES ; Redefinicion de caracteres
LD DE,CHRTBL+65*8 ; Patrones a redefinir
LD BC,$24
CALL LDIRVM

LD HL,CADENA_TXT ; Ponemos el texto en pantalla
LD DE,NAMTBL+5*32
LD BC,32
CALL LDIRVM

LD HL,COLOR ; Vamos cambiando el color de los
PUSH HL ; caracteres
BUCLE_1: POP HL
LD A,[MOVIMIENTO]
DEC A
JR NZ,SEGUIR
LD HL,COLOR
LD A,3
SEGUIR: LD [MOVIMIENTO],A
LD DE,8
ADD HL,DE
PUSH HL
LD DE,CLRTBL+65*8
LD BC,24
CALL LDIRVM
CALL RETARDO
JR BUCLE_1

RETARDO: LD B,9 ; Bucle de retardo (9 veces)
MAS_RETARDO: HALT
DJNZ MAS_RETARDO
RET

PATRONES: DB $00,$3C,$7E,$7E,$7E,$7E,$3C,$00 ; A
DB $00,$3C,$7E,$7E,$7E,$7E,$3C,$00 ; B
DB $00,$3C,$7E,$7E,$7E,$7E,$3C,$00 ; C

CADENA_TXT: DB "ABCABCABCABCABCABCABCABCABCABCAB"

COLOR: DB $80,$80,$80,$80,$80,$80,$80,$80
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $80,$80,$80,$80,$80,$80,$80,$80
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
.PAGE 3

MOVIMIENTO: DS 1

Seguro que se puede mejorar, pero las prisas....  :D


Título: Re: Movimiento con colores
Publicado por: Dioniso en 14 de Septiembre de 2009, 05:46:52 pm
 ??? Acabo de compilar el código y parece todo correcto... El movimiento es de derecha a izquierda (y no al revés) pero creía que ése era el efecto que querías conseguir, ¿no? El salto es lógico de caracter a caracter pero, a parte de eso, no noto nada más raro...


Título: Re: Movimiento con colores
Publicado por: Jon_Cortazar en 15 de Septiembre de 2009, 04:46:20 am
Tragamanzanas, que lo que te pasa es que, al mirarlo atentamente, el efecto óptico te hace ver que "vuelve al loop", pero estar, está correcto (creo yo)  ;)


Título: Re: Movimiento con colores
Publicado por: OKI09 en 15 de Septiembre de 2009, 10:56:26 am
Bueno, si lo que quieres es un movimiento de izquierda a derecha, pues cambia los datos de la linea "CADENA_TXT" al reves, o sea:

CADENA_TXT:   db "CBACBACBACBA......"

y ya esta. ;D


Título: Re: Movimiento con colores
Publicado por: Dioniso en 15 de Septiembre de 2009, 12:02:07 pm
Bueno, si lo que quieres es un movimiento de izquierda a derecha, pues cambia los datos de la linea "CADENA_TXT" al reves, o sea:

CADENA_TXT:   db "CBACBACBACBA......"

y ya esta. ;D


Claro  :) Lo digo porque fue lo que escribiste en tu primer post.


Título: Re: Movimiento con colores
Publicado por: SapphiRe_MSX en 15 de Septiembre de 2009, 12:55:42 pm
A veeer, que parece que estamos confundiendo a Tragamanzanas con OKI09... Tragamanzanas fue el autor original y OKI09 el que ha puesto la solución :griel: :griel:


Título: Re: Movimiento con colores
Publicado por: Dioniso en 15 de Septiembre de 2009, 02:09:05 pm
A veeer, que parece que estamos confundiendo a Tragamanzanas con OKI09... Tragamanzanas fue el autor original y OKI09 el que ha puesto la solución :griel: :griel:

Ains!!!  :-[ Perdón.


Título: Re: Movimiento con colores
Publicado por: Tragamanzanas en 15 de Septiembre de 2009, 07:58:46 pm
No lo entiendo, imagino que visualmente con circulos la sensación de movimiento es continuo...

OKI09, lo que no me queda muy claro en tu ejemplo es:
COLOR:   DB $80,$80,$80,$80,$80,$80,$80,$80
      DB $00,$00,$00,$00,$00,$00,$00,$00
      DB $00,$00,$00,$00,$00,$00,$00,$00
      DB $80,$80,$80,$80,$80,$80,$80,$80
      DB $00,$00,$00,$00,$00,$00,$00,$00
      DB $00,$00,$00,$00,$00,$00,$00,$00
¿Todo esto para cambiar 2 colores?


Título: Re: Movimiento con colores
Publicado por: OKI09 en 15 de Septiembre de 2009, 11:01:06 pm
Ainsss!! es verdad.

Pero es que la rutina la diseñe en un principio con tres colores uno para cada caracter. (A B y C)

Me explico, si en la siguiente linea de datos despues de los "$80" pones por ejemplo "$F0" y en los siguientes pones "$A0", estarias haciendo el mismo efecto pero con distintos colores, como si de un arbol de navidad se tratase. ;D

Si es que como ya he dicho, las prisas no son buenas para nada. ;D

En principio era lo que querias, lo que pasa que lo modifique porque creia que lo verias mas claro con un solo color.


Título: Re: Movimiento con colores
Publicado por: Tragamanzanas en 16 de Septiembre de 2009, 01:03:49 pm
Gracias OKI09, ya está claro.
Lo que quiero intentar con esto, es hacerlo a gran escala, es decir, rellenar media pantalla con 2 ó 3 caracteres redefinidos y con solo ir cambiando en la tabla de colores el color de esos caracteres conseguir el efecto de las olas del mar  ::)