Hallo NeoGriever,
irgendwie verstehe ich deine Berechnungen nicht, aber mir sind zwei Dinge aufgefallen:
var distancey = (self.position.y + self.speed.y) - self.position.y;
du addierst hier auf eine Position eine Geschwindigkeit. Das geht nicht wegen der unterschiedlichen Einheiten Weg und Weg/Zeit.
var distancey = (self.position.y + self.speed.y) - self.position.y;
welches Ergebnis erwartest du hier? für mich ist distancey = self.speed.y.
Gruß, Jürgen