Ich hab im Prinzip alles so wie ihr gemacht.

Ich hab bloß eine eigene Klasse für den KeyListener gemacht, das fand
ich übersichtlicher.

Außerdem habe ich Movable in LivingObject umbenannt, weil es auch eine
doLogic() Methode hat, nicht nur eine moveObject().