Hi, ich geb dir mal ein paar Tipps:
1. Setze das Timer-Intervall nicht unter 50, was defacto ungefähr das kleinste Intervall darstellt. Alles andere gibt nur Probleme, weil es z.B. auf unterschiedlichen Rechnern nicht gleichschnell läuft.
2. Bessere Code-Einrückung
3. Benutze keine TImages für Spiele... ich weiß, die meisten (ich auch) fangen damit an, aber das bringt einen ziemlich shcnell an die Grenzen, und zwar wegen folgendem: Instabilität (wie der Bug bei dir), langsamkeit, Flimmern bei Bewegungen und am wichtigsten: Die ganzen Images sind einfach schlecht zu verwalten. Wenn du jedes einzelne Objekt im Spiel mit einem Image darstellen willst, wirst du niemals fertig, weil du jedes mal den gesamten Code anpassen musst.
Alternativen:
1. Zeichne alles selber mit TCanvas und TBitmap, und benutze ein
Offscreenbitmap um das Flimmern zu verhindern. das ganze ist recht einfach, in der Geschwindigkeit nicht ganz vorne, aber für deine Zwecke wohl ausreichend.
2.
Andorra2D oder eine vergleichbare 2d-Engine: Hier kannst du wie professionelle Spiele die Hardwarebeschleunigung der Grafikkarte benutzen, was optisch und in der Geschwindigkeit Vorteile bringt - Ist allerdings IMO etwas schwieriger zu Handhaben als TCanvas und TBitmap. Dafür hast du hier auch schon einige Tools dabei, um Animationen einzubinden etc...