Karoshi MSX Community
05 de Julio de 2021, 06:52:00 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: Colisiones  (Leído 4519 veces)
0 Usuarios y 1 Visitante están viendo este tema.
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« : 11 de Marzo de 2009, 09:19:44 am »

Hola chicos!,

Me gustaria saber como haceis las detecciones de collisiones sprite vs patron y sprite vs sprite

es decir, las hacéis a nivel de pixel o de bloque

en el caso de los patrones y sprites utilizais doble deteccion primero por bloque y luego a pixel?

Este año no podre pasar por RM Sad me piro a paris Cheesy sabeis algun sitio donde pudiera haber material MSXero? algun rastro?




En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #1 : 11 de Marzo de 2009, 10:28:21 am »

En cuanto a las colisiones, las de sprite-sprite procuro hacerlas por hardware porque es bastante más fácil y económico en cuanto a recursos, aunque no siempre fiable, según te organices. Además, algunos VDPs funcionan a su manera (ver post sobre desarrollo compatible).

En las colisiones con patrones, lo suyo es hacerlas a nivel de patrones, y pasar a nivel de píxels sólo si es imprescindible. Ten en cuenta que una colisión pixel sprite - pixel patrón puede ser algo compleja y lenta, y la BIOS te servirá de muy poco para estos propósitos.

En cuanto a París, estuve por allí este fin de semana y no encontré ningún MSX en las galerías Lafayette Wink

No sé, quizás en el mercado de pulgas puedas encontrar algo, pero me parece que el principal sólo funciona los domingos por la mañana. En cuanto a tiendas de segunda mano, ni idea.

Lo único que hay que decir en cuanto a prevención es que los ordenadores MSX franceses tienen teclado AZERTY y, además, la salida de vídeo es PERITEL, que igual no te funciona bien en televisores PAL puros.

La mejor opción será que te pases por Passion MSX o MSX Cafe y preguntes directamente. Allí están todos los MSXeros franceses. Igual te puedes tomar hasta unos cafés con los frikis francófonos. Wink
« Última modificación: 11 de Marzo de 2009, 10:33:38 am por robsy » En línea
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #2 : 11 de Marzo de 2009, 11:18:26 am »

Para las colisiones sprite vs patrón lo que suelo hacer es registrar un offset en X e Y, con valores 0-7. Así, cada vez que sumo 1 pixel en X, incremento también el offset. Cuando ese offset llega a 8 (es decir, que vuelve a ser 0), significa que el sprite a avanzado un patrón, y que tengo que comprobar lo que hay. Idem para la Y. Así es básicamente como lo hago yo. Para colisiones entre sprites, compruebo las coordenadas entre ambos. La verdad es que nunca lo he hecho por hardware, salvo en algún miniprograma de BASIC (ON SPRITE GOSUB xx y demás)
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.]
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #3 : 11 de Marzo de 2009, 11:32:56 am »

oka, gracias

la verdad es que por hardware no me interesa, ya que si un muñeco esta formado por 2 sprite a la porra con la detección Tongue

vaya robsy, no habia pensado en el tema del teclado frances Sad  nada, mejor me olvido de traerme algún MSX, pero igualmente andaré a la caza del cartucho Smiley

En línea
SapphiRe_MSX
Visitante
« Respuesta #4 : 12 de Marzo de 2009, 02:56:48 pm »

la verdad es que por hardware no me interesa, ya que si un muñeco esta formado por 2 sprite a la porra con la detección Tongue

Hombre, si lo haces en código máquina y mueves los sprites al mismo tiempo y en el vblank, si puedes detectar colisiones de sprites por hardware. Basta con que diseñes los sprites de forma que nunca solapen dos pixels encendidos.
En línea
k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #5 : 13 de Abril de 2009, 08:34:15 pm »

Para las colisiones sprite vs patrón lo que suelo hacer es registrar un offset en X e Y, con valores 0-7. Así, cada vez que sumo 1 pixel en X, incremento también el offset. Cuando ese offset llega a 8 (es decir, que vuelve a ser 0), significa que el sprite a avanzado un patrón, y que tengo que comprobar lo que hay. Idem para la Y. Así es básicamente como lo hago yo. Para colisiones entre sprites, compruebo las coordenadas entre ambos. La verdad es que nunca lo he hecho por hardware, salvo en algún miniprograma de BASIC (ON SPRITE GOSUB xx y demás)


Juas, mira que te complicas la vida, ¿no es mas facil hacer la and de 7 y comprobar si es 0? Tongue
« Última modificación: 14 de Abril de 2009, 10:32:36 am por Viejo_archivero » En línea
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #6 : 14 de Abril de 2009, 10:34:03 am »

Juas, mira que te complicas la vida, ¿no es mas facil hacer la and de 7 y comprobar si es 0? Tongue

Pues va a ser que si, lol! k0gulator number one!  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.]
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #7 : 14 de Abril de 2009, 12:50:07 pm »

La técnica del AND la empleé para un motor básico para plataformas que después no utilicé para nada, pero que quizás sirvió para inspirar a algún MSXero en la sombra Wink

Es la más rápida y efectiva, y resuelve bastante bien muchos de los temas, aunque añadir detalles a la interacción con el escenario supone complicar siempre el motor. De hecho, la mejor solución sería siempre leer directamente a nivel de píxels, pero es demasiado lento y obliga a emplear colores separados para fondo y escenario. Lo único que he hecho a nivel de pixels es el inefable G-MONKEY, al más puro estilo GORILLA Grin
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!