Karoshi MSX Community
06 de Julio de 2021, 12:13:45 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]
  Imprimir  
Autor Tema: Movimiento con colores  (Leído 5961 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Tragamanzanas
Karoshi Fan
**
Mensajes: 71


« : 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?
En línea
Dioniso
Visitante
« Respuesta #1 : 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".)
En línea
Tragamanzanas
Karoshi Fan
**
Mensajes: 71


« Respuesta #2 : 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".
En línea
Dioniso
Visitante
« Respuesta #3 : 14 de Septiembre de 2009, 01:39:57 pm »

pues entonces me da a mí que va a ser algo en el código...
En línea
OKI09
Karoshi Maniac
****
Mensajes: 275



WWW Email
« Respuesta #4 : 14 de Septiembre de 2009, 03:42:52 pm »

Prueba este ejemplo.  Wink

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....  Cheesy
En línea

La derrota no es una opción y no hay excusas.
"Parasiempre"
Dioniso
Visitante
« Respuesta #5 : 14 de Septiembre de 2009, 05:46:52 pm »

 Huh 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...
En línea
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #6 : 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)  Wink
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
OKI09
Karoshi Maniac
****
Mensajes: 275



WWW Email
« Respuesta #7 : 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. Grin
En línea

La derrota no es una opción y no hay excusas.
"Parasiempre"
Dioniso
Visitante
« Respuesta #8 : 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. Grin


Claro  Smiley Lo digo porque fue lo que escribiste en tu primer post.
En línea
SapphiRe_MSX
Visitante
« Respuesta #9 : 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
En línea
Dioniso
Visitante
« Respuesta #10 : 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!!!  Embarrassed Perdón.
En línea
Tragamanzanas
Karoshi Fan
**
Mensajes: 71


« Respuesta #11 : 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?
En línea
OKI09
Karoshi Maniac
****
Mensajes: 275



WWW Email
« Respuesta #12 : 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. Grin

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

En principio era lo que querias, lo que pasa que lo modifique porque creia que lo verias mas claro con un solo color.
« Última modificación: 15 de Septiembre de 2009, 11:07:08 pm por OKI09 » En línea

La derrota no es una opción y no hay excusas.
"Parasiempre"
Tragamanzanas
Karoshi Fan
**
Mensajes: 71


« Respuesta #13 : 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  Roll Eyes
En línea
Páginas: [1]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!