Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Rollenspiel: Timer (https://www.delphipraxis.net/9390-rollenspiel-timer.html)

johny 25. Sep 2003 13:49


Rollenspiel: Timer
 
:arrow: http://www.delphipraxis.net/internal...ct.php?t=10498

Zitat:

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 ...

MacGuyver 26. Sep 2003 13:08

Re: Rollenspiel: Timer
 
Moin!

Nimm dafür doch die Systemticks. Da hast du 18.2 Ticks die Sekunde und in einer Schleife läßt du die Kiste hängen und rufst Application.ProzessMessages auf. Schon kannst du zeitlich planen.

Tick + (Sekunden * 18.2) merken - in einer Schleife warten, bis Ticks größer ist. Vorsich um 0:00, das könnte schief gehen.

MacGuyver


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz