Karoshi MSX Community
05 de Julio de 2021, 12:58:45 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: Un Salto decente  (Leído 4677 veces)
0 Usuarios y 1 Visitante están viendo este tema.
msxnake
Karoshi Fan
**
Mensajes: 86


Email
« : 31 de Diciembre de 2005, 07:58:26 pm »

 Huh
En el Jack Exploring2 me estoy currando un salto en parabola pixel  a pixel, mi problema es la deteccion de bordes.

Alguna idea?

 @@activa_saltesquerre:
        ld a,[anterior]
        cp 7
        jr z,@@cont2
        cp 77
        ret nz
       
        @@cont2:
        ld a,[pulsa]
        or a
        jp nz,move
       
        @@saltesquerre:
        ld a,2
        ld b,4
        ld c,12*5
        call SET_SOUND
       
        ld a,1
        ld [pulsa],a
        ld de,0
        ld [index_s],de
        ld a,2
        ld [salta],a
        ld de,(foto*2)+8
        ld [foto_jack],de
        ret
       
        @@saltesquerre2:
        ld de,[index_s]
        ld hl,vectorsalt
        add hl,de
        ld a,[hl]
        ld [sincro],a
        inc de
        ld [index_s],de
        cp final
        jr z,@@final
        ld hl,vectory
        dec de ;si no s'incrementa abans. problema??
        add hl,de
        ld a,[hl]
        cp 1
        call z,ascens
        cp 2
        call z,descens
        call endarrere
        ret
       
        @@final:
        ld a,2
        ld b,1
        ld c,(12*5)+3
        call SET_SOUND
       
        xor a
        ld [salta],a
        ret     
En línea
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #1 : 31 de Diciembre de 2005, 10:57:12 pm »

Hola, MSXnake  Cheesy

Estoy yo ahora de alcohol como pa ponerme a examinar el código, pero resumiendo, yo lo que hago es detectar siempre choques con los objetos. Una bandera controla el salto, que se llama con un call si está activada, y si se choca con algo y se salta al mismo tiempo, pues se desactiva el salto y se activa la rutina de "caída libre" (que no hay suelo bajo los pies, vamos). Por eso no veo que tengas necesidad de incluir rutinas de detección DENTRO de tu rutina de salto.

Igual lo que has preguntado no tiene nada que ver con lo que he respondido, jajaja  Grin A ver si mañana más fresco me entero un poco mejor. Anyway, ánimo con el Jack (disfruto como un enano con el original, ¡qué de recuerdos de los tiempos de la msx-club!)  Cheesy

¡Saludos y feliz 2006!  Wink
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #2 : 01 de Enero de 2006, 01:58:11 am »

Buenas,

Lo que yo haria es mirar que caracter "pisa" el personaje. A partir de la posicion X e Y del sprite del personaje calculariamos el caracter de la tabla de nombres que corresponde a esa posicion, (o su equivalente en RAM si tienes el mapa en RAM antes de volcarlo -mas mejor-) y comprobaria si corresponde a un caracter de fondo o no. Si no es de fondo, seria pared, o techo o algo y por lo tanto ya tienes detectado el susodicho. Pero claro, la resolucion es de un caracter, lo cual para SC2 ya es lo suyo.
Como seguramente el caracter sea de 16x16 deberias leer 4 caracteres de la tabla de nombres ( o de RAM), pero en ASM es rapido.
Todo depende de hasta que punto quieras detectar y tal, pero basicamente es eso. Para tener mas precision, pues hay varias croquetas, pero variara segun tengas diseñado el cotarro.

Joe, que mal me explico siempre Smiley Y si encima tengo 2 copas de cava y una de sidra como hoy, pos ya ves... Si sigues necesitando mas informacion hazlo saber y tranquilo que saldra.  Smiley
En línea

--

Cindy Lauper She Bops!
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #3 : 01 de Enero de 2006, 06:58:34 pm »

Si los bloques escénicos son de 8x8 y completos, bastará que analices la colisión cuando Y MOD 8=0 o X MOD 8=0. Se gana en velocidad y en tranquilidad para el programador. La demo de plataformas que puse usaba esta técnica y no funcionaba mal. A ver si se puede hacer algo en este sentido...
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #4 : 01 de Enero de 2006, 07:55:49 pm »

Coincido con Robsy. En cualquier caso, ¿detección de que borde?, ¿toparte con algo cuando estás saltando o saber si cuando has acabado el salto estás sobre tierra firme?.
Entiendo que si durante el salto parabólico quieres detectar colisiones, tendrás forzosamente que incluir código para ir viendo sobre que caracteres se encuentra Jack y si detectas uno sólido; pues se acabó el salto y caes en picado (por ejemplo). Si no va a haber colisiones, digo yo que el salto lo tendrás definido en una tabla (para empezar es lo más fácil); así que probablemente sólo tendrás que chequear a los pies de Jack cuando este se encuentre bajando (si lo detectas cuando subes lo incrustarías en las paredes  Grin) y únicamente cuando dice Robsy, en las Y múltiplos de 8, cuando detectas sólido, se acabó el salto.
Y luego vendrán los ajustes y la depuración, claro.
En línea

Doom dee doom dee doom
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!