• Jueves 25 de Abril de 2024, 14:13

Autor Tema:  Ayuda Para Delimitar La Pantalla  (Leído 2877 veces)

Templar

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Ayuda Para Delimitar La Pantalla
« en: Lunes 20 de Diciembre de 2004, 18:41 »
0
Hola buenas, soy nuevo x aki... Estoy haciendo un trabajo para la universidad en el q tengo q programar un arkanoid en masm, ahora mismo, estoy intentando hacer dos palas, q las pueda mover de izda a derecha, las dos a la vez modificando la int de teclado y q en los extremos de la pantalla se paren... pues vereis, de momento cuando llegan a los extremos dan la vuelta... no consigo q paren... hago un cmp posx_1,295 para q cuando la posicion sea esa pare pero no hace nada :S

Y con la int de teclado segun la combinacion de teclas q hago va bien y otras no... x ejemplo si kiero mover las dos a la vez a la derecha va bien, pero si lo hago hacia la izda tengo q soltar una para mover la otra...

A ver si algun@ puede echarme un cable.


salu2 :hola:

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Ayuda Para Delimitar La Pantalla
« Respuesta #1 en: Lunes 20 de Diciembre de 2004, 19:33 »
0
Depende de como estes pintando las palas, si lo haces en base a la memoria de video en modo texto obserba que hay 160 bytes por linea 0..159 por lo tanto si al dividir la posicion del comienzo de tu pala entre 160 el resto será 0 y estarás en el borde izquierda , si el resto es 159 estás en el estremo derecha.

Si estas usando otra tecnica indicame cual. lo del teclado ecesitaré conocer cueal es la int que usas.

Un saludo.
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.

Templar

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Ayuda Para Delimitar La Pantalla
« Respuesta #2 en: Lunes 20 de Diciembre de 2004, 20:05 »
0
estoy usando el modo texto, de 320x200,  como hago para ver el resto, con DIV y luego mirando los flags?  luego como continuo, si me da 0 o 159 tendra q hacer algo, a dnd lo mando? xq me interesa q una vez llega no se mueva y haya q darle ahcia el lado contrario... voy a acabar a golpes con el masm  :lightsabre:




la interrupcion de teclado q modifico en la 9h  


salu2

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Ayuda Para Delimitar La Pantalla
« Respuesta #3 en: Miércoles 22 de Diciembre de 2004, 10:31 »
0
Si estas accediendo a memoria de video en modo texto (80x25) para pintar en la pantalla lo normal es que lo hagas con la direccion base 0B800 h 80 x 25 =2000 celdas y do bytes por posición , por fila tendremos 160 bytes. Para pintar accedenos con la dirección base y un desplazamiento que nos indica el byte al que accedemos, bien, pues ese desplazamiento es la clave, el desplazamiento irá de 0 a 4000.
si dividimos el desplazamiento entre 160 ( 80x2 bytes ) nos dará como cociente el número de fila - 1 y en el resto el número de columna x 2.

Ejemplo:
fila 2 columna 25 = 210
210 : 160 = 1 (sumamos 1 y tendremos las filas)
resto = 50 (dividimos entre 2 y tenemos las colunmas, 25)

Con esto podemos situarnos en todo momento en pantalla. Si te da 0 o 159 la cuestion no es lo que tengas que hacer sino lo que no tienes que hacer. si te da cualquier cosa te mueves, si te da 0 o 159 no te mueves, vamos que te saltas el proceso de movimiento izquierda si es 0 o derecha si es 159.

Un ejemplo de código te lo pondré en cuanto tenga ocasión.

un saludo y feliz navidad  :birthday:
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.

Templar

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Ayuda Para Delimitar La Pantalla
« Respuesta #4 en: Lunes 27 de Diciembre de 2004, 18:50 »
0
ya he conseguido q me funcione, muchas gracias  :kicking:  :hola: