Funciona bien, pero cuando va ha hacer la animación de Link, se queda como cortada. Antes, sin hacer esto, la animación se realizaba correctamente.
¿por que puede ser debido?
Te pego el código:
- Código: Seleccionar todo
vid_waitFadeToNormal_a()
-------------------------- de aquí para arriba, todo igual.
//Coordenadas iniciales. Las damos un valor.
lda #150
sta linkDir_x1
lda #130
sta linkDir_y1
lda #150
sta linkDir_x2
lda #138
sta linkDir_y2
//Bucle principal, se ejecutara siempre
forever {
//Metasprite de Link
putMetaSprite(linkDir_x1, linkDir_y1, #2, #1, #SPR_ATTR.PALETTE_0, #0) //0
putMetaSprite(linkDir_x2, linkDir_y2, #2, #2, #SPR_ATTR.PALETTE_0, #2) //1
putMetaSprite(linkDir_x1, linkDir_y1, #2, #2, #SPR_ATTR.PALETTE_1, #10) //2
doFrame()
}
}
inline doFrame() {
//Leemos el joypad 1
inp_update(#PORT_1)
ldand( pads[CONTROLLER.PLAYER1].mantained, #BUTTON.DOWN)
if(true) {
lda frames
cmp #12
if(greater) {
lda metaSprites[1].firstTile
switch(reg.a) {
case #2 {
lda #$6
}
case #$6 {
lda #$9
lda #2
}
}
sta metaSprites[1].firstTile
lda #0
sta frames
}
inc metaSprites[0].y //Incrementamos el valor de metaSprite 0 en y
lda metaSprites[0].y //Cargamos ese valor en a
sta linkDir_y1 //Introducimos el valor de a en la coordenada y1
inc metaSprites[1].y //Incrementamos el valor de metaSprite 1 en y
lda metaSprites[1].y //Cargamos ese valor en a
sta linkDir_y2
inc metaSprites[2].y //Incrementamos el valor de metaSprite 2 en y
lda metaSprites[2].y //Cargamos ese valor en a
sta linkDir_y1 //Introducimos el valor de a en la coordenada y1
}
ldand(pads[CONTROLLER.PLAYER1].mantained, #BUTTON.UP)
if(true) {
lda frames
cmp #12
if(greater) {
lda metaSprites[1].firstTile
switch(reg.a) {
case #2 {
lda #$6
}
case #$6 {
lda #$9
lda #2
}
}
sta metaSprites[1].firstTile
lda #0
sta frames
}
dec metaSprites[0].y //Decrecentamos el valor de metaSprite 0 en y
lda metaSprites[0].y //Cargamos ese valor en a
sta linkDir_y1 //Introducimos el valor de a en la coordenada y1
dec metaSprites[1].y //Decrecentamos el valor de metaSprite 1 en y
lda metaSprites[1].y //Cargamos ese valor en a
sta linkDir_y2
dec metaSprites[2].y //Decrecentamos el valor de metaSprite 2 en y
lda metaSprites[2].y //Cargamos ese valor en a
sta linkDir_y1 //Introducimos el valor de a en la coordenada y1
}
ldand(pads[CONTROLLER.PLAYER1].mantained, #BUTTON.LEFT)
if(true) {
lda frames
cmp #12
if(greater) {
lda metaSprites[1].firstTile
switch(reg.a) {
case #2 {
lda #$6
}
case #$6 {
lda #$9
lda #2
}
}
sta metaSprites[1].firstTile
lda #0
sta frames
}
dec metaSprites[0].x //Decrecentamos el valor de metaSprite 0 en x
lda metaSprites[0].x //Cargamos ese valor en a
sta linkDir_x1 //Introducimos el valor de a en la coordenada x1
dec metaSprites[1].x //Decrecentamos el valor de metaSprite 1 en x
lda metaSprites[1].x //Cargamos ese valor en a
sta linkDir_x2
dec metaSprites[2].x //Decrecentamos el valor de metaSprite 2 en x
lda metaSprites[2].x //Cargamos ese valor en a
sta linkDir_x1 //Introducimos el valor de a en la coordenada x1
}
ldand(pads[CONTROLLER.PLAYER1].mantained, #BUTTON.RIGHT)
if(true) {
lda frames
cmp #12
if(greater) {
lda metaSprites[1].firstTile
switch(reg.a) {
case #2 {
lda #$6
}
case #$6 {
lda #$9
lda #2
}
}
sta metaSprites[1].firstTile
lda #0
sta frames
}
inc metaSprites[0].x //Incrementamos el valor de metaSprite 0 en x
lda metaSprites[0].x //Cargamos ese valor en a
sta linkDir_x1 //Introducimos el valor de a en la coordenada x1
inc metaSprites[1].x //Incrementamos el valor de metaSprite 1 en x
lda metaSprites[1].x //Cargamos ese valor en a
sta linkDir_x2
inc metaSprites[2].x //Incrementamos el valor de metaSprite 2 en x
lda metaSprites[2].x //Cargamos ese valor en a
sta linkDir_x1 //Introducimos el valor de a en la coordenada x1
}
----------------------- a partir de aquí para abajo, todo igual
inc frames


![más risas [+risas]](./images/smilies/nuevos/risa_ani3.gif)

![como la niña del exorcista [360º]](./images/smilies/nuevos/vueltas.gif)