Estoy probando este código para implementar balas y estoy viendo que sólo funciona cuando la trayectoria de la bala es hacia la derecha y abajo. Si intentas disparar de derecha a izquierda (por ejemplo) no funciona bien. El problema viene cuando calcula la diferencia de la posición incial y la final (sbc hl,de) que no tiene en cuenta el signo. Mi solución ha sido reemplazar esa resta por:
ld a,h
sub d
jp nc,.noy
neg
.noy
ld h,a
ld a,l
sub e
jp nc,.nox
neg
.nox
ld l,a
Ahora la bala apunta bien independientemente de la dirección a disparar.
Mi siguiente problema es que la velocidad de la bala varia bastante. A veces el disparo es muy lento.
Por lo demás agradecería una ayudita para entender para que sirve el cálculo del modulo~1.