Registriert: Mo Jan 24, 2005 15:55 Beiträge: 28 Wohnort: Biberach an der Riß
Hallo!
Hab ein paar Fragen zum 3ds Loader von Noeska und OpenGl (hoffe es sind nicht zu viele...):
1. Wenn ich eine 3ds Datei geladen habe, kann ich dann über eine String-Variable in der der Name eines der geladenen Objekte steht, auf das entsprechende Objekt zugreifen, also um z.B. die Position zu verändern? Wenn ja, wie?
2. Kann ich mehrere 3ds-Dateien gleichzeitig laden (also in ein und dieselbe "Welt")?
3. Wie schreibe ich eine Kollisions-Abfrage?
4. Wie kann ich dafür sorgen, dass ich immer auf dem Boden in meiner Welt bleibe (Ego-Perspektive)?
5. Wenn ich auf ein Objekt treffe (beim laufen), wie kann ich rausbekommen wie es heißt, und welchen Höhenunterschied es zum Boden hat?
6. Wenn ich mit der Maus klicke, wie bekomme ich den Namen des Objekts, auf das ich geklickt habe?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
zu 1: Ist das net bisl umständlich mit nem String?
zu 2: Ja. Du musst nur mehrere Instanzen der Klasse erstellen. Die kannste alle einzeln "befüllen". (Da glaub ich fehlt aber nochn bisl anderweitiges Wissen...)
zu 3,4: Newton wie rswm schon sagte.
zu 5: Irgendwas muss der Programmierer beim erstellen seiner Welt auch noch machen. Schätze das bleibt an dir hängen. Je nachdem wie du die Welt gebaut hast, kann das mehr oder weniger aufwendig sein.
zu 6: Guck mal das Selektionstutorial an.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Jan 24, 2005 15:55 Beiträge: 28 Wohnort: Biberach an der Riß
Zu erstens: es sollte über eine Stringvariable sein, da das Programm die Namen der Objekte nicht kennt! Sie werden dem Programm erst später über einen String mitgetelt.
Registriert: Mo Jan 24, 2005 15:55 Beiträge: 28 Wohnort: Biberach an der Riß
Also, das soll ein kleines 3D Game werden. Die Umgebung und Objekte will ich per gl3ds laden. Das programm soll per string-variable für die Namen auf die Objekte zugreifen können. Außerdem muss es den Namen von einem Objekt zurückliefern, sobald ich darauf klicke, um die Objekt zugehörigen Daten finden zu können. Außerdem brauche ich den Höhenunterschied, wenn ich mich bewege, da ich ab einem bestimmten Höhenunterschied nicht mehr weitergehen können sollte.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wenn du das Objektorientiert machst, kannst du für deine Einheiten Klassen anlegen welche in ner Liste liegen. Dann kannst du die Informationen der Einheiten zusammen mit dem Mesh in der Klasse speichern und der Zugriff geht über den Index den die Klasse in der Liste hat.
Code:
TEinheit = class
public
constructor Create;
destructor Destroy;
Mesh : T3DSMesh;
AP,LP: integer;
x,y,z : real;
end;
var Einheiten : TList; //Enthält nur TEinheit
Sachen mit Strings identifizieren kommt mir bisl schwammig vor. Also rein Gefühlsmäßig.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Jul 01, 2003 18:59 Beiträge: 887 Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
opengl only takes numbers for identifying what is clicked on. Also finding a mesh or 3ds is faster by looking it up using that number then by name (e.g. there is no way you can give opengl the name, so you have to use the id anyway). In the end you could look up the name via the id and then print the name where the mouseclick happened
Registriert: Mo Jan 24, 2005 15:55 Beiträge: 28 Wohnort: Biberach an der Riß
Flash hat geschrieben:
Wenn du das Objektorientiert machst, kannst du für deine Einheiten Klassen anlegen welche in ner Liste liegen. Dann kannst du die Informationen der Einheiten zusammen mit dem Mesh in der Klasse speichern und der Zugriff geht über den Index den die Klasse in der Liste hat.
Code:
TEinheit = class
public
constructor Create;
destructor Destroy;
Mesh : T3DSMesh;
AP,LP: integer;
x,y,z : real;
end;
var Einheiten : TList; //Enthält nur TEinheit
Sachen mit Strings identifizieren kommt mir bisl schwammig vor. Also rein Gefühlsmäßig.
Wie kann ich dann eine 3ds Datei in dieses Mesh laden, Anzeigen, und darauf zugreifen (also z.B. x,y,z bestimmen)?
Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.