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: Spielerbewegung (https://www.delphipraxis.net/9612-rollenspiel-spielerbewegung.html)

ISAS 30. Sep 2003 09:57


Rollenspiel: Spielerbewegung
 
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 3 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.

Danke im Voraus, euer ISAS
In der zwischenzeit tüfftle ich natürlich weiter

johny 30. Sep 2003 13:46

Re: Rollenspiel: Spielerbewegung
 
Hi ISAS, vor kurzem schon mal einen Thread aufgemacht, um dir zu antworten, der ist dann allerdins 'verloren' gegangen ;) Also hier noch mal die Antwort:

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.

Wenn du das Bild mit einem Timer gesteuert neu aufbaust, um den Spieler fortzubewegen (=> also das Bild in einem festen Intervall neu renderst), könnte es passieren, dass ein alter und langsamer Rechner das nicht schafft, während der neue Supercomputer eines Hardcore-Zockers bei weitem nicht ausgelastet ist, sein ganzes Potential also nicht ausspielen kann.
Allerdings kommt es auch auf das Spiel an, welchen Lösungsweg du wählst. Für ein 2D-Tetris ist es sicherlich übertrieben, eine riesen Engine zu schreiben. Bei einem anspruchsvollen Rollenspiel, solltes du dir hier aber einige Gedanken machen. Denn ein Rollenspiel erzeugt die Spielatmospähre nicht zuletzt durch eine saubere Grafik ...

Und immer Dran denken: Wer hohe Türme bauen will, muss lange beim Fundament verweilen!

anku 30. Sep 2003 14:32

Re: Rollenspiel: Spielerbewegung
 
Ansonsten, wenn es um DirectX Spieleprogrammierung in Delphie geht, schau dir das http://www.neobrothers.de Forum mal an. Dort findest du auch Tutorials zur Verwendung des HighPerformanceCounters ( oder wie der genau heisst).

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 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