Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Splatter Joe
Anmeldungsdatum: 22.01.2009 Beiträge: 5
|
Verfasst am: 22.01.2009, 21:10 Titel: Spiel |
|
|
Hallo,
ich würde gerne ein Spiel à la Wolfenstein programmieren. Ich habe gute QBasic Kenntnisse nur ein Problem habe ich noch: Wie realisiere ich die 3D Enginge, die die Kartendaten liest, gegner positioniert und ein stufenloses umsehen (besonders das bereitet mir kopfzerbrechen) ermöglicht. Wie ließe sich das realisieren?
Danke im Vorraus!
P.S: ich bracuhe keine codeschnipsel sodern würde nur gerne wissen wie das im Grundprinzip funktioniert. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 22.01.2009, 22:01 Titel: |
|
|
Hallo,
mit QB würde ich ein solches Projekt u.a. aus Performancegründen überhaupt nicht (mehr?) angehen. FreeBASIC bietet dir da viel mehr Möglichkeiten, eine bessere Grafikperformance und Zugriff auf diverse fertige Bibliotheken zur 2D-/3D-Grafikdarstellung. Wenn du QB-Kenntnisse hast, kannst du mit FreeBASIC gleich loslegen. Die Unterschiede sind überschaubar.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2509 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
|
Splatter Joe
Anmeldungsdatum: 22.01.2009 Beiträge: 5
|
Verfasst am: 23.01.2009, 14:48 Titel: |
|
|
und wie würde es mit dem Zeichnen der Gegner funktionieren bzw. wie wird abgefragt ob der gegner getroffen wurde? Das mit dem Labyint ist schon mal sehr gut vielen dank! könnte man auf die wände auch texturen draufpappen? |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2509 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 23.01.2009, 21:35 Titel: |
|
|
Eine wichtige Technik beim 3D-Labyrint: Bild wird aus vertikalen Linien gezeichnet, und zwar in einem sehr vereinfachten Ray-Tracing, d.h. Blickrichtung vom Auge vorgegeben, was sieht man auf einem bestimmten Punkt? Weil die Wände vertikal sind, sieht man auf einer vertikalen Position immer nur eine Wand. Wenn dort keine Wand ist, so ist es transparent, aber die berechnete Vertikalkoordinate kann ich gleich als Endpunkt für ein Parkettbodenelement gebrauchen => ich rechne weiter, bis ich an Wand stosse. Die Entfernung bestimmt schlussendlich die perspektivische Höhe.
Um Texturen zu ermöglichen: Horizontal muss noch die Position entlang der Wand bestimmt werden => selektiert die passende Pixelspalte aus einer Texturmap (in QB einfach zweidimensionale Feldvariable ausreichend). Vertikal statt eine durchgezogene Linie einfach Linienstückchen entsprechend dem Muster der Pixelspalte zeichnen.
Das Prinzip mit den vertikalen Linien ist aus Performancegründen wichtig: 320 Spalten sind so viel schneller (Echtzeit-Animation) berechnet und aufgebaut als 64'000 einzelne Pixel mit echtem Raytracing durchgerechnet. Preis für diese Optimierung ist lediglich, dass sämtliche Körper vertikale Prismaformen besitzen müssen. => Um Feinde darstellen zu können, diese möglichst auch nach diesem Grundsatz ausgestalten. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|