Yaaa....yo es por no estropearle la "peleilla".

Las ideas principales son:
- El sprite tiene que tener una velocidad horizontal de la misma magnitud que la pantalla, pero en dirección opuesta. Por lo tanto, la velocidad del sprite en x es
Vxsprite - Vxpantalla. Hayq ue tener en cuenta el signo de la velocidad, por supuesto, ya que si ambas velocidades tiene la misma dirección las maginitudes SE SUMARÁN y si son opuestas se restarán. Eso ya te lo da la fórmula. Para los enemigos estáticos, cuya Vxsprite = 0, su velocidad en PANTALLA será
-Vxpantalla por lo tanto. Es lo que se llama una velocidad relativa a la pantalla. La
velocidad en y del sprite será la propia del sprite, ya que NO HAY SCROLL VERTICAL- Con esa velocidad, la coordenada del sprite sera
X=X+Vx e
Y=Y+Vy...eso como siempre
- Para situar las coordenadas del Sprite "en el mundo" yo empezaría por asignarle coordenadas del Tile correspondiente a la esquina superior izquierda del sprite. Para que aparezca en pantalla antes o después hay que tener en cuenta su tamaño. SI tienes sprites de diferentes tamaños, yo no me liaría y usaría siempre las mismas dimensiones, las estandar:24x21. Como el scroll es horizontal, tienes que tener en cuenta el borde de la pantalla(los sprites se representan por debajo de él) y
ponerlos con una X=0 cuando queden 3 tiles para que "salgan" (3 tiles x 8 pixels/tile = 24, que es la anchura estándar del sprite y de los bordes derecho e izquierdo). No tienes que pensar nada parecido en vertical.
-Como los sprites se "PINTAN" debajo del borde, hay que tener en cuenta que desaparecen con una coordenada 0(por la izquierda, que es el "borde izquierdo bajo el borde izquierdo) o 24+40*8+1= 345, (que es cuando su esquina superior izquierda queda bajo el borde derecho). En ambos casos no hay ningún pixel del sprite en pantalla (salvo que no tengan puesto el x2 en X o en Y...o que no sean multisprite....en cualquiera de estos casos especiales, dinos y te ayudamos
-Las buenas prácticas con sprites de C64 te dicen que NO apagues el sprite...que los dejes bajo el borde y lo recicles para evitar ciclos perdidos y tirones
-Cómo se traducen las coordenadas del sprite desde coordenadas de tiles?Pues teniendo en cuenta el sistema diferente de coordenadas de los sprites (ya que su cero es distinto y se mueven al pixel).Las fórmulas serían
Xsprite=24+8*Xtile Ysprite=50+8*Ytile(ya que los bordes superior e inferior son de 50 pixels.Una vez "conectado" el sprite, es más fácil ir operando con la velocidad de la pantalla, que es unica para todos, y la velocidad del propio sprite(que será cero si está "anclado al suelo"), que traducir las coordenadas, que es más lento. el
sprite quedaría "desactivado" si su x se sale del rango [0,344).
En Y su rango visible es desde 50-24 = 26 hasta 26+25*8+1 = 227, es decir
[26, 227)