Buenas, resulta que estoy haciendo pruebas para hacer un rpg, y resulta que el personaje al llegar a ciertos limistes del mapa, pues se queda pillado un rato, hasa que me voy a la direccion contraria y la presiono otro rato.
Lo del oldx e y es para otra cosa mas adelante.
Aqui el code:
scanKeys(); oldx=spritex; oldy=spritey; if(keysHeld()&KEY_RIGHT){ if(posicion!=2){ posicion=2; NF_SpriteFrame(0,0,6); NF_HflipSprite(0,0,false); frame=6; } else{ NF_HflipSprite(0,0,false); anim ++; if (anim > 7) { anim = 0; frame ++; if (frame > 8) frame = 6; NF_SpriteFrame(0, 0, frame); } spritex++; } } else if(keysHeld()&KEY_LEFT){ if(posicion!=3){ posicion=3; NF_SpriteFrame(0,0,6); NF_HflipSprite(0,0,true); frame=6; } else{ NF_HflipSprite(0,0,true); anim ++; if (anim > 7) { anim = 0; frame ++; if (frame > 8) frame = 6; NF_SpriteFrame(0, 0, frame); } spritex--; } } else if(keysHeld()&KEY_DOWN){ if(posicion!=0){ posicion=0; NF_SpriteFrame(0,0,0); NF_HflipSprite(0,0,false); frame=0; } else{ NF_HflipSprite(0,0,false); anim ++; if (anim > 7) { anim = 0; frame ++; if (frame > 2) frame = 0; NF_SpriteFrame(0, 0, frame); } spritey++; } } else if(keysHeld()&KEY_UP){ if(posicion!=1){ posicion=1; NF_SpriteFrame(0,0,3); NF_HflipSprite(0,0,false); frame=3; } else{ NF_HflipSprite(0,0,false); anim ++; if (anim > 7) { anim = 0; frame ++; if (frame > 5) frame = 3; NF_SpriteFrame(0, 0, frame); } spritey--; } } else{ posicion=4; if(keysUp()&KEY_RIGHT){ NF_SpriteFrame(0,0,6); NF_HflipSprite(0,0,false); } else if(keysUp()&KEY_LEFT){ NF_SpriteFrame(0,0,6); NF_HflipSprite(0,0,true); } else if(keysUp()&KEY_UP){ NF_SpriteFrame(0,0,3); NF_HflipSprite(0,0,false); } else if(keysUp()&KEY_DOWN){ NF_SpriteFrame(0,0,0); NF_HflipSprite(0,0,false); } } scrollx=spritex-112; scrolly=spritey-64; scrollxscreen=spritex-112; scrollyscreen=spritey-64; if(scrollx<0){NF_MoveSpriteX(0,0,spritex);scrollxscreen=0;NF_ScrollBg(0,3,0,scrollyscreen);} if(scrollx>=0){NF_ScrollBg(0,3,scrollxscreen,scrollyscreen);NF_MoveSprite(0,0,112,64);} if(scrolly<0){NF_MoveSpriteY(0,0,spritey);scrollyscreen=0;NF_ScrollBg(0,3,scrollxscreen,0);} if(scrolly>=0){NF_ScrollBg(0,3,scrollxscreen,scrollyscreen);NF_MoveSprite(0,0,112,64);}