Autor Tema: Dudas en Ensamblador  (Leído 166752 veces)

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Dudas en Ensamblador
« Respuesta #300 en: Septiembre 18, 2015, 16:21:54 »
Desde la ignorancia creo que se puede usar lo mejor de cada método.

Dejar que el VIC se encargue de detectar colisiones y sólo entonces hacer las comprobaciones por software.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 667
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #301 en: Septiembre 21, 2015, 16:14:37 »
 Gracias Laddh, en breve me pongo con ello y te cuento dudas,...el tema de la colision de sprites es la ultima de las principales lagunas que me quedan por manejar y que quiero aplicar a Kabura, que por cierto sigo de Claustro trabajando y trabajando con el Proyecto aunque no lo parezca..

   Te cuento,...mandame un correo a retrogamesystes@gmail (tenia la tuya pero ya sabeis que soy un desastre) y te lo devuelvo con la ultima actualizacion de Kabura, que me molaría que la vieras y veras como está de mejorado el proyecto.

   Saludos.
   

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 667
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #302 en: Octubre 01, 2015, 00:00:27 »
Con esa rutina puedes saber que sprites están en colisión, pero no cuales están con cuales, ¿me equivoco?

  Mientras cenaba he estado ojeando la rutina y como dices Carlos, dicha rutina no nos dice que Sprite colisiona con cual, pero creo que tampoco dicha circunstancia sea la funcion de ella,...como dice Laddh a él lo que le interesa es que le diga simplemente si ha habido colision sobre el sprite que controla con el Joy..
  La verdad es que la rutina ojeandola me parece muy interesante y sobre todo funcional en relacion a lo que quieres saber (si algo colisiono contra tu sprite/s, en cuanto tenga tiempo me enclastro y le doy prioridad uno a la hora de probarla y experimentarla en Kabura, creo que me puede venir perfecta para lo que yo quiero hacer que es reconocer si hay algun tipo de colision con el sprite/es que controlas con el Joy...

  En el fondo me maravilla como con un juego muy sencillo (pero muy jugable) has solucionado y manejado un tema/asunto (colision de sprites) que yo todavia no manejo incluso en juegos "digamos" mas complicados o complejos en su desarrollo, es por ello que en cuanto tenga tiempo con tu permiso experimentaré con tu rutina porque presiento que estoy a las puertas de dar un nuevo salto...

  De nuevo gracias y enhorabuena Laddh (dobles: una por la rutina y otra por Race), como digo estoy hasta el culo de curro pero en cuanto tenga tiempo me enclaustro a experimentar la rutina que en mi caso será comparando qué colisiona contra los sprites #0 y #1 que conforman el cuerpo de Kabura, luego extensible al sprite #2 que es el disparo de Kabura,..os cuento y como siempre...

   Saludos Ferreos!!

  P.D.: Laddh ya hemos contactado por mail, (aunque ya lo teniamos anteriormente) pero ya veras como dentro de algun mes te volvere a pedir el correo porque soy un desastre y siempre estoy muy liado,..por cierto Carlos a ver si te mando la ultima actualizacion de Kabura que va a toda cera y espero estrenar en el primer trimestre de 2016,..todavía me devato si descansar de todo esto una temporada o meterme en mi Proximo proyecto tras Kabura porque lo siguiente que tengo en mente quiero que sea algo muy gordo (pero que me llevara un año de trabajo como minimo, se estrenaria a finales de 2017) y tu Barón, creo que me dijiste que necesitas 3/4 Kb libres para la Music en Game (que este es otro tema a insertar y de hecho ya en Kabura)  a vosotros Bieno e Igor no os digo nada cacho Perros...

 

   

   

 
« última modificación: Octubre 01, 2015, 00:15:11 por R. INTERNATIONAL »

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 667
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #303 en: Octubre 01, 2015, 00:09:54 »
  Ahora que lo pienso...Alakran, sigues vivo?,...en tus manos quedo La Carretera.
   
 

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 233
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #304 en: Octubre 01, 2015, 12:17:41 »
Muchas gracias Rulas, y perfecto si puedes adaptar la rutina y cumple con tus necesidades.

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 667
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #305 en: Octubre 11, 2015, 21:10:00 »
 Laddh, hoy que tuve tiempo estube dandole cera desde por la mañana y llevo todo el dia,..he introducido la rutina en Kabura y va como,...LA SEDA!!,..comparo si algo ha colisionado con los Sprites 0 y 1 que son los del cuerpo de kabura con cualquier otro sprite de los enemigos, tambien comparo si el sprite 2 (disparo de kabura) ha impactado(matado) con algun enemigo...y esto va de la leche!!

  La rutina funciona perfecta y me soluciona y gestiona lo que queria hacer y aprender de una forma muy optima, creo que estoy ante un antes y un despues, parece mentira lo tanto que he conseguido con una rutina tan pequeña y tan modulable, recordad que yo antes hacia las colisiones cuando la coordenada X e Y estaban exacatas en coincidencia, era funcional pero muy chapucero,.las posibilidades que me ofrece esta rutina nueva son tremendas al simple contacto real de grafico con el sprite que sea...tengo que reconocer que estoy alucinando,..

  El funcionamiento es perfecto, el ahorro de bytes numeroso, reduccion de ciclos notable,..el caso es que antes me terminaba el juego sin problemas y ahora me cuesta trabajo llegar al Nivel 3,.ahora tengo que regular todo de nuevo (bendita suerte) ya que los ciclos se han reducido mucho y la colision es totalmente nueva y perfecta

  La verdad Laddh es que no se como agradecertelo,...hoy a habido un antes y un despues en mis conocimientos  y practicas, lo de manejarme en el tema de la colision tengo que reconocer que ya es un escaloncito mas..

  Aqui la rutina que utilizo en Kabura...compara lo que yo quiero y en funcion a la coincidencia hace lo que yo quiera...

   
Código: [Seleccionar]
; *****************
;     CONTACTO
; *****************
CONTACTO
V         = 53248
LDA V+30 ;TESTEAMOS SI HA HABIDO COLISIÓN ENTRE SPRITES
AND #255
CMP #9 ; COMPARA SPRITE 0 CONTRA SPRITE 3 1+8
BEQ FONO3
CMP #17 ; COMPARA SPRITE 0 CONTRA SPRITE 4 1+16
BEQ FONO3
CMP #33 ; COMPARA SPRITE 0 CONTRA SPRITE 5 1+32
BEQ FONO5
CMP #65 ; COMPARA SPRITE 0 CONTRA SPRITE 6 1+64
BEQ FONO6
CMP #129 ; COMPARA SPRITE 0 CONTRA SPRITE 7 1+128
BEQ FONO7

CMP #10 ; COMPARA SPRITE 1 CONTRA SPRITE 3 2+8
BEQ FONO3
CMP #18 ; COMPARA SPRITE 1 CONTRA SPRITE 4 2+16
BEQ FONO3
CMP #34 ; COMPARA SPRITE 1 CONTRA SPRITE 5 2+32
BEQ FONO5
CMP #66 ; COMPARA SPRITE 1 CONTRA SPRITE 6 2+64
BEQ FONO6
CMP #130 ; COMPARA SPRITE 1 CONTRA SPRITE 7 2+128
BEQ FONO7

CMP #12 ; COMPARA SPRITE 2 CONTRA SPRITE 3 4+8
BEQ DINA3
CMP #20 ; COMPARA SPRITE 2 CONTRA SPRITE 4 4+16
BEQ DINA3
CMP #36 ; COMPARA SPRITE 2 CONTRA SPRITE 5 4+32
BEQ DINA5
CMP #68 ; COMPARA SPRITE 2 CONTRA SPRITE 6 4+64
BEQ DINA6
CMP #132 ; COMPARA SPRITE 2 CONTRA SPRITE 6 4+128
BEQ DINA7
RTS

   Mil Gracias,..me vuelvo al Claustro.
 
« última modificación: Octubre 11, 2015, 22:11:27 por R. INTERNATIONAL »

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 233
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #306 en: Octubre 13, 2015, 08:23:55 »
Perfecto! Deseando ver esos avances en Kabura.

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 233
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #307 en: Octubre 15, 2015, 11:35:39 »
Una petición de ayuda, animado por el subidón moral que me ha proporcionado crear Race, me he embarcado en el segundo proyecto, Argos, aquí quiero que el sprite sea animado, pero no acabo de dar con una rutina satisfactoria.
De momento utilizo esto:

Código: [Seleccionar]
ANIMDER LDA 2040
        CMP #40
        BEQ UM1
        CMP #41
        BEQ UM2
        CMP #42
        BEQ UM3
        CMP #43
        BEQ UM4
        RTS
UM1     LDA #41
        STA 2040
        RTS
UM2     LDA #42
        STA 2040
        RTS
UM3     LDA #43
        STA 2040
        RTS
UM4     LDA #40
        STA 2040
        RTS

Cargo el puntero del sprite 0 y comparando le voy cambiando las 4 formas, pero el movimiento es muy alocado y poner retardos no mejora la sensación del movimiento. Llevo unos días estancado con esto y no doy con la rutina adecuada.
Rulas, la animación de Kabura esta muy bien, ¿Podrías comentar tú rutina de la animación aquí?
O cualquier guru del foro que ya tenga una rutina acabada y quiera comentarlo.

Saludos.

Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1008
  • SYS 8*4096
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #308 en: Octubre 15, 2015, 11:43:13 »
Yo usaria una variable y la iria incrementando.
Solo compararia cuando llegase a la máxima cifra y volveria a cero.

VarAnimSpritX = $3000 (una dirección libre de memoria)

                            inc VarAnimSpritX
                            lda VarAnimSpritx
                            cmp #4                ;Anim del 0 al 3 Si es mayor...
                            bne pasa
                            lda #00
                            sta VarAnimSpritX ;Bucle a cero

pasa                    A pegar puntero nuevo y a seguir

Lo he escrito de memoria en el curro, si hay fallos de sintaxis lo siento ;)
« última modificación: Octubre 15, 2015, 13:52:11 por Maniako »
LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.

Portiella

  • Commodoremaníaco
  • ****
  • Mensajes: 109
  • SYS 0
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #309 en: Octubre 15, 2015, 12:07:04 »
El código de Maniako es el mas correcto, comparar con $40 para incrementar a $41, comparar con $41 para incrementar a $42, es muy mal método pero no porque no funcione, sino porque es mucho código.

Si la animación no va fina el problema es otro, diría que no sincronizas con el raster

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 233
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #310 en: Octubre 15, 2015, 12:12:04 »
@Maniako

Prácticamente esa fue la primera que hice, y parecía funcionar, pero cuando mis hijos me hicieron de betatesters, moviendo el joy a 1000* hora de izquierda a derecha, el puntero sobrepasaba los limites y se perdía en las 255 formas posibles del sprite, por eso quite el INC y decidi acotar las posibles 4 formas.

Yo también lo escribo desde el curro, como nos enganchen... ;)

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 233
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #311 en: Octubre 15, 2015, 12:16:49 »
@Portiella

El Raster, como las matemáticas, se que existen pero...;)




Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1008
  • SYS 8*4096
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #312 en: Octubre 15, 2015, 12:28:12 »
Pon el código machacado por tus betatesters a ver donde está el fallo.   ;)

Es decir, el primero que hicistes.
LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 233
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #313 en: Octubre 15, 2015, 12:47:50 »
@Maniako

Ya no lo tengo pero por lo que recuerdo debía ser algo así

Código: [Seleccionar]
ANIMDER INX
        LDA DERECHA,X
        STA 2040
        CPX #3
        BEQ RESET
        RTS
RESET   LDX #0
        RTS
ANIMIZQ INY
        LDA IZQUIERDA,Y
        STA 2040
        CPY #3
        BEQ RESET2
        RTS
RESET2  LDY #0
        RTS
       
DERECHA    BYTE 40,41,42,43
IZQUIERDA  BYTE 48,49,50,51


Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1008
  • SYS 8*4096
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #314 en: Octubre 15, 2015, 13:48:47 »
¿Con el resto del programa trabajas con los registros X e Y
y haces una llamada a las rutinas con un JSR. ?

LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.