Das hier bezieht sich nicht wirklich direkt an deine Frage aber eher an - warum alle denken, dass Spieleprogrammierung in Delphi nicht geht oder etwas spezielles ist?!
[Edit]Das hier ist nicht nur an dich gerichtet. Ich habe das Gefühl, dass das ein allgemeine Konsens ist![/Edit]
Delphi, C++, Java, ... sind "Sprachen".. Eine Sprache ist ein Mittel zum Zweck.
Genauso wie ich momentan das Schreiben auf Deutsch ausnutze um dir meine Gedankengänge klarzumachen, benutzt man Programmiersprachen um Spiele (und vieles mehr) darin zu programmieren.
Ich könnte genauso gut eine vollständige Erörterung nach Schema machen. Nichts hält mich auf. Der springende Punkt ist, dass das ganze auch auf Englisch, Japanisch, Koreanisch usw. usf. geht!
Die Sprache an sich ist nicht der entscheidende Punkt!
So, zurück zu deiner ursprünglichen Frage..
Die Mechanik in Flappy Bird/Monkey ist im Grunde ganz einfach:
- man hat mehrere Objekte die von rechts nach links wandern
- der Protagonist bewegt sich rauf oder runter (wobei runter automatisch geschieht)
Technisch ganz billig:
- Ein Hintergrund Bitmap für die Szene
- Ein Flappy Bird Sprite für den Protagonisten
- und jeweils ein Bild für die Hindernisse
Hindernisse werden dann einfach zur Laufzeit berechnet (generiert) und zu der Spiellogik passend bewegt!
Kollisionsüberprüfung... kannst du hier nach suchen. Sollte auch ganz einfach realisierbar sein! Inputhandling ist auch ganz banal - für jeden Tap auf den Velocity-Vektor einen bestimmten Upvektor drauf addieren!
Wenn man dann mal das Grundgerüst fertig hat und es bereits spielbar ist, kann mit dem Aufpolieren begonnen werden.. Hierzu kannste dir ja mal das
hier ansehen!
[Edit]
Zum Timer - in der Praxis macht man das so, dass man so oft es geht die Hauptlogik ausführt (Mainloop) und die visuell-logischen Updates in bestimmten Intervallen machen UND diese delte-Zeit auch mit berücksichtigt!
Am einfachsten bemüht man sich um den OnIdle Eventhandler in Application.
Dort drinnen führ man allmögliche updates dann aus!
Zeitmessung usw. muss auch stattfinden!
[/Edit]