Sprites en parallax

Buenas dias y casi año nuevo.
tengo 2 fondos con parallax y quiero poner sprites y que aparezcan en el lugar donde e puesto.
Tengo a mario en su sitio y se mueve bien.
Quiero poner una moneda en las coordenadas 347x246
pero quiero que el personaje cuando llegue a esas coordenadas la moneda aparezca.
me explico:
Tengo dos fondos utilizando parallax, y quiero poner un sprite por ejemplo en la coordenada x: 284 y: 85 , se salen de la pantalla, lo se, pero quiero que al moverme a la derecha o a la izquierda el sprite se mueva como el fondo, a ver si me explico:
El parallax me deja mover los fondos y asi el efecto de que se mueve el personaje, pero quiero poner otro sprite que siga con el parallax y que si se sale de la pantalla al moverme a la derecha hasta que en la pantalla aparezca el sprite, pero que se mueva a la misma velocidad que mi sprite y que si salta el sprite ese se valla para abajo y si bajo para abajo el sprite suba.
He intentado hacerlo pixel a pixel calculando el movimiento de mi sprite y cambiarle el valor al otro para sumar o restar, nada. Y si muevo el sprite un pixel si el otro se movio se mueve demasiado lento respecto al personaje.




Asi, muevo yo los fondos

PA_InitParallaxX(0, 0, 0, 256, 256);
PA_InitParallaxY(0, 0, 0, 256, 256);

if ((((mario.x-mario.scrollx)>>8) > 112) && ((mario.x>>8) < 754-144)){ // Scroll more...
mario.scrollx = mario.x - (112<<8);
}
if ((((mario.x-mario.scrollx)>>8) < 112) && ((mario.x>>8) > 64)){
mario.scrollx = mario.x - (112<<8);
}

if ((((mario.y-mario.scrolly)>>8) > 64) && ((mario.y>>8) < 455-128)){ // Scroll more...
mario.scrolly = mario.y - (64<<8);
}
if ((((mario.y-mario.scrolly)>>8) < 64) && ((mario.y>>8) > 64)){
mario.scrolly = mario.y - (64<<8);

PA_ParallaxScrollX(0, mario.scrollx>>8);
PA_ParallaxScrollY(0, mario.scrolly>>8);

PA_SetSpriteXY(0, 0, mario.screenx, mario.screeny);


Y a mario lo muevo asi:

if(Pad.Held.Right) mario.x += 3<<8;
if(Pad.Held.Left) mario.x -= 3<<8;
mario.screenx = (mario.x-mario.scrollx)>>8; // Position on the screen
mario.screeny = (mario.y-mario.scrolly)>>8;
0 respuestas