Schließlich fehlt noch eine Kollisionserkennung. Dies ist eine Prüfung, ob der Spieler ein Hindernis berührt oder nicht. Um dies umzusetzen, überlegen wir uns, wie der kürzeste Abstand zwischen einem Punkt und einer vertikalen Linie (Strecke) bestimmt werden kann:
Die möglichen Fälle, die hier auftreten können, zeigt die Abbildung zuvor: Je nach Lage des Punktes (x, y) ist der kürzeste Abstand entweder die Entfernung zwischen dem Punkt und einem Ende der vertikalen Linie (Fälle A und D) oder aber es ist die horizontale Abweichung (Fälle B und C).
Im nachfolgenden Quellcode bestimmt die Funktion abstand_punkt_linie(x, y, z, y1, y2) genau den Abstand wie zuvor beschrieben. Diese Funktion wird verwendet, um die Kollisionserkennung umzusetzen.