Karoshi MSX Community
05 de Julio de 2021, 08:19:20 pm *
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: Dudas de novatoide!  (Leído 5122 veces)
0 Usuarios y 1 Visitante están viendo este tema.
LocoMJ
Karoshi Lover
***
Mensajes: 126



WWW Email
« : 25 de Abril de 2011, 10:18:14 pm »

A las buenas noches!

Con motivo de unas camisetas de IOTZM, el señor Viejo Archivero, hizo en mi Pc un "fastproject" con lo básico para explicarme el ABC de este mundillo. El menda, que es un desastre, lo fue dejando parado hasta hoy   Griel

Y ahora que se como tratar de forma básica una colisión, me gustaría poder añadir un SCORE a la pantalla principal. (Si la duda sé que es de novato total  Roll Eyes )

Mi intención es hacer un juego super sencillo en el que van apareciendo unas llaves por la pantalla y "potatoboy" debe ser capaz de conseguir todas antes de que se acabe el tiempo. Por supuesto que todo está en pañales y en la pantalla tendrá sus paredes a modo de laberinto. Seguramente cuando esté acabado no será ni parecido a lo que es este primer pantallazo.



Muchas zankius, en especial al señor Viejo Archivero  Smiley

En línea

Now Canon V20, Then Sony HB-75
La Maison de Leia y LocoMJ
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #1 : 26 de Abril de 2011, 07:49:44 am »

Para programar un marcador lo suyo es aprender como funcionan los BCD (binary coded decimal). Hace algún tiempo programé un documento al respecto, que debería estar en algún lugar, pero no he sido capaz de encontrarlo. Si alguien tiene una versión off-line, que la añada aquí sin miedo.
En línea
LocoMJ
Karoshi Lover
***
Mensajes: 126



WWW Email
« Respuesta #2 : 26 de Abril de 2011, 08:51:31 am »

Sin problema Robsy Smiley
El BCD sé como funciona ya que he estudiado electronica asi que esta tarde toca darle caña Smiley
En línea

Now Canon V20, Then Sony HB-75
La Maison de Leia y LocoMJ
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #3 : 26 de Abril de 2011, 09:06:06 am »

Pues si ya lo tienes claro, sólo darte un par de pistas:

- La instrucción para "corregir" la suma o resta de BCDs es DAA, pero no funciona con las operaciones INC/DEC
- El Z80 emplea BCD empaquetado, ocupando cada dígito decimal un nibble (4 bits)

Por lo tanto, para un contador de doble dígito, lo que harías sería algo así:

Código:
; leer valor
ld hl,[CONTADOR]
ld a,[hl]

; sumar uno
add a,01h
daa

; guardar valor
ld [hl],a

; escribir en pantalla
ld b,a
rrca
rrca
rrca
rrca
and 0Fh
add 30h ; el código ASCII del carácter '0'
ld hl,NAMTBL+COLUMNA*32+FILA
call WRTVRM

; siguiente dígito
inc hl
ld a,b
and 0Fh
add 30h
call WRTVRM

Es un ejemplo sencillo y guarro, pero creo que los conceptos se entienden bien. A partir de aquí, todo tuyo.
En línea
LocoMJ
Karoshi Lover
***
Mensajes: 126



WWW Email
« Respuesta #4 : 26 de Abril de 2011, 10:32:11 am »

Muchas gracias Robsy!

El juego esta hecho con tiles. Hace falta dibujar los numeros con el polska?
En línea

Now Canon V20, Then Sony HB-75
La Maison de Leia y LocoMJ
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #5 : 26 de Abril de 2011, 10:44:19 am »

Evidentemente, tienes que tener una fuente cargada en VRAM en el banco que vayas a utilizar. En el código que te he pasado, se asume que los caracteres 48 a 57 (30h a 39h) incluyen los gráficos de los dígitos 0 al 9. Puedes dibujarlos en Polka o en lo que tú quieras, o copiar directamente los de la BIOS del MSX, que es la opción fea pero barata.
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #6 : 26 de Abril de 2011, 11:02:34 am »

Por cierto, que si te paseas por la parte de juegos opensource de Karoshi encontrarás algunas implementaciones de BCD, así como fuentes listas para emplear. Por ejemplo, échale un vistazo al Classic MineSweeper.
En línea
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #7 : 26 de Abril de 2011, 11:15:26 am »

Jejeje, ya me acuerdo Loco! ;-), lo hicimos en un momentín, si, todo basado en caracteres: movimiento del personaje con las teclas y colisión con las tiles del escenario. Me alegro de que lo retomes y que se convierta en un mini-proyecto: al final, es importante ser capaz de terminar un juego completo, con su intro, gameplay, pantalla de game over... ¡Ánimo! laugh
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.]
LocoMJ
Karoshi Lover
***
Mensajes: 126



WWW Email
« Respuesta #8 : 26 de Abril de 2011, 02:04:38 pm »

Esta noche me pongo con lo que Robsy ha comentado, ademas tengo que mirar la forma de hacer una cuenta de tiempo atras. Con eso ya habria algo jugable, en plan, consigue todas las llaves en X segundos.

A la tarde me toca convencer a la chavalilla para que se haga cargo de la pantalla de inicio y para la de game over que esta visto que controla el tema de los hama beads ( grande ese Ned Friks que se curró Wink )
En línea

Now Canon V20, Then Sony HB-75
La Maison de Leia y LocoMJ
LocoMJ
Karoshi Lover
***
Mensajes: 126



WWW Email
« Respuesta #9 : 27 de Abril de 2011, 11:39:16 pm »

Bueno, tengo un marcador con tiles y consigo que se mueva con el codigo de robsy con algún pequeño cambio, aunque va a toda pastilla.

Mañana toca seguir dandole caña y a ver si hago que se mueva cada X ciclos de reloj que lo tengo a medio hacer pero no se muestra ni leches en pantalla Sad , que ya es hora de ir a planchar la oreja y mañana todavía es jueves.


Nas noches hijos de Cyndi Lauper!  Cindy Lauper
En línea

Now Canon V20, Then Sony HB-75
La Maison de Leia y LocoMJ
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #10 : 28 de Abril de 2011, 09:21:34 am »

Para hacerlo ir "más lento", basta con que añadas un contador de refrescos. Así puedes ralentizar el movimiento. Es decir, añade HALT con un contador y que se salga del bucle si se deja de pulsar la tecla del cursor o se indica otra dirección.
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!