http://www.delphipraxis.net/internal...ct.php?t=10498
Zitat von
ISAS:
Baue gerade an einem Rollenspiel, welches sich aber noch in den Startlöchern befindet. Falls jemand Tibia kennt(Ich weiss, mache sagen, dass es scheisse ist andere finden es wieder super. Es is nur meine Vorlage).
Die Steuerung erfolgt mit der Tastertur (Pfeiltasten) und ist Echzeit. Ich habe es geschaft, dass Spieler und KI nicht über Steine, Sträucher, etc. gehen können, sondern dann einfach stehen bleiben und der KI-Gegner auf die zuläuft. Insgesamt habe ich nun 4 Probleme, die ich einfach nicht zu lösen schaffe.
1.Problem:
Da man den Spieler mit den Pfeiltasten steuert ensteht das Problem, dass, wenn man auf der Pfeiltaste oben bleibt, er mit Highspeed über den Bildschirm rast. Mit Timer habe ich das schon versucht, aber er akzeptiert das nicht und so weiss ich nicht, was ich machen kann, damit sich der Spieler immer gleich schnell bewegt. Der Timer wär am besten geeignet, weil man mit sich dann mit höherem Level schneller Bewegt.
Ein anderer Grund ist, dass es dann auch über Internet funktionieren soll.
Einen Timer zu verwenden genügt nicht. Du musst die Zeit messen, die der Rechner benötigt, um ein Bild aufzubauen und diesen Faktor mit einberechnen.
Ein schneller Rechner zeigt dann mehr Zwischenbilder von Schritt A nach Schritt B an, ein langsamer Rechner zeigt weniger Zwischenbilder. Wie geanau du das aber in deinem Programm umsetzen kannst, kann ich dir leider nicht sagen. Aber vielleicht hilft dir der Tipp ein wenig weiter.
Dieses Buch hatte ich hier schon einmal im Forum zum Thema Spieleprogrammierung empfohlen:
3D-Spieleprogrammierung
David Scherfgen
Hanser Verlag
ISBN 3-446-22152-2
EUR 39,90
http://www.hanser.de/buch/2003/3-446-22152-2.htm
Hier wird auf dieses Problem eingegangen. Allerdings wird nicht in Pascal, sondern C++ programmiert und
DirectX verwendet. Ich denke, um ein Spiel zu programmieren ist das eine günstige Kombination.
===
An die Admins und Moderatoren:
Entschuldigt bitte, dass ich nicht gewartet habe, bis ISAS den Thread neu eröffnet hat, aber ich komme nacher nicht mehr ins Internet, so dass ich dann nicht mehr antworten kann ...