Mi solución fue cambiar completamente la lógica, de medir pixeles a medir posiciones, eso me solucionó muchos problemas ✨.
Me explico; lo único que hice fue cambiar la posición en X y Y a números enteros. Luego con estos hago todas las comparaciones. c:
Así por ejemplo para que no se salga de la pantalla solo tengo que ver que no bajen los valores de 1 o se pasen de 10.
Así con todo, y con esa sencilla condicional me detecta todas las colisiones.
Aquí dejo el código 📚: https://github.com/ssaldana-dev/game-js
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?