Moon-Dog Geschrieben 12. März 2002 Geschrieben 12. März 2002 Ok, ich muss mich in nen Quellcode von jemand reinlesen, allerdings ist er dürftig, Beziehungsweise gar nicht kommenentiert und von programmieren hab ich nicht gaz so die Ahnung... Also folgendes die eine Komponente hat follgenden Quellcode: #include <cray.h> void IN_Init (void) { } void IN_Shutdown (void) { } void IN_Commands (void) { } void IN_Move (usercmd_t *cmd) { } nun meine Frage... bewirkt das überhaupt was? ich meine ist doch alles leer oder nicht? Zitieren
gugelhupf Geschrieben 12. März 2002 Geschrieben 12. März 2002 richtig ! das bewirkt gar nichts ! was mich wundert ist, dass er das compiliert.... Leere Funktionen sollten m.E. nach so aussehen: void foo() { ; // !!!!!!!!!!!!! } Was das Pogramm sonst so macht können wir Dir nur sagen, wenn mehr Infos herausgibst ! Um was gehts eigentlich ????:confused: Zitieren
Moon-Dog Geschrieben 12. März 2002 Autor Geschrieben 12. März 2002 im grunde ist es übungsprogramm glaub ich... soll wohl gesamt ein labrynth durch das man gehen kann... es besteht aus recht vielen komponenten und ich soll mal sehen wie man es vereinfachen kann... also denke ich mal da hat man sich ne nette aufgabe überlegt wie ich C besser lerne Zitieren
Moon-Dog Geschrieben 12. März 2002 Autor Geschrieben 12. März 2002 die ist ziemlich lang... und definiert ein paar sachen und schließt einige viele weitere header dateien ein: hier mal ein kleiner auszug aus der cray.h #include "zone.h" #include "mathlib.h" typedef struct { vec3_t origin; vec3_t angles; int index; int frame; int color; int ground; int shine; } entity_state_t; Zitieren
capitanx Geschrieben 12. März 2002 Geschrieben 12. März 2002 Ohne zusammenhang kann man damit soviel anfangen wie mit dem ersten Zitieren
Orffi Geschrieben 19. März 2002 Geschrieben 19. März 2002 Leere Funktionen können durchaus komplett leer sein. void foo (void) { } ist also richtig und sollten keinen Compiler vor ein Problem stellen. Jan Zitieren
Crush Geschrieben 19. März 2002 Geschrieben 19. März 2002 Für mich sieht das nach 3D-Daten aus. #include "zone.h" // wäre auch noch evtl. aufschlußreich einzusehen #include "mathlib.h" typedef struct { vec3_t origin; // Orginal Vektoren (x,y,z) in Grad oder Rad deshalb Vec3 _t könnte temporär bedeuten, dann kämen die woanders her vec3_t angles; // Die Rotationswinkel in Grad vermutlich int index; // Keine Ahnung int frame; // Ein Frame-Counter, damit man sieht, an welcher Stelle die Animation sich gerade befindet. int color; // Farbe (könnte auch Textur beinhalten) fürs Objekt, Fläche oder die Umgebung int ground; // Untergrund Farbe oder Textur int shine; // Vielleicht ein Schalter für Reflektionen? } entity_state_t; // aktueller Stand Es wäre möglich, daß es sich hier sogar nur um eine einzelne Vertice (=Dreiecksfläche) handelt und da sich Objekte wiederum woanders befinden, müßte also diese Struct in einem Array drin sein. Vec ist meistens die Abkürzung für Vector, 3 für 3 Koordinaten. Könnte allerdings auch ein Vector aus 3D-Koordinaten sein, jedoch dann ist eine einzelne Farbe etwas dürftig. Das sollst Du dann wohl selber ausfüllen: void IN_Init (void) // Hier müssen Startpositionen, tempöräre Daten, etc. initialisiert werden { } void IN_Shutdown (void) // Abschluß sollte reservierten Speicher freigeben { } void IN_Commands (void) // Hier sollte man bestimmte Befehle abarbeiten (z.B. "Kamera bewegen", "Sichtwinkel umschalten", "Textur wechseln", etc.) { } void IN_Move (usercmd_t *cmd) // Zeiger auf eine Bewegungsstruktur für Pfadanimationen o.ä. { } Es scheint mir, daß es sich hierbei um eine 3D-Engine handeln soll. Doch mit dem bissel hier kann man da immer noch nicht genaue Rückschlüsse ziehen. Es fehlt noch viel zu viel. Import von Objekt/Umgebungs/Texturdaten/Animationdaten, Rotationen, Animationen, Berechnung allgemein, Ausgabe (OpenGL, DX, Software-Renderer...) Matrizenfunktionen (sind praktisch immer notwendig bei aktuellen 3D-Renderern), und und und. Sollte es sich tatsächlich um sowas handeln, empfehle ich Dir mal z.B. einsicht in den Quake-Sourcecode zu nehmen (frei downloadbar auf IDs Homepage). Dann weißt Du, was da noch alles auf einen zukommen würde. Sowas ist selbst für Vollprofis eine echte Herausforderung, die nicht jeder bewältigt bekommt. Es müssen also noch weitaus mehr Strukturen, Funktionen, Klassen, usw. vorhanden sein, sonst kann man damit nichts anfangen. Solltest Du mit Vektorrechnung und Matrizen nicht so bewandelt sein, sieht es sehr schlecht für Dich aus, hier irgendwas Brauchbares draus zu machen. Zitieren
Shadax Geschrieben 19. März 2002 Geschrieben 19. März 2002 Das sind scheinbar plattform-abhängige Funktionen, die (noch) nicht implementiert worden sind (oder deren Funktionalitäten an einer anderen Stelle implementiert sind). @Crush: das -ist- der Q source Zitieren
Crush Geschrieben 19. März 2002 Geschrieben 19. März 2002 Das erklärt vieles. Vielleicht ist mir wegen der Gemeinsamkeiten auch deshalb der Quake-Source eingefallen. Die Commands sind dann bestimmt die Shell-Eingaben. Ich finde den jedoch extrem unübersichtlich und alles andere als schön um sowas zu lernen. Da gibt´s wesentlich bessere Beispiele. Ist schon böse und gemein einen Azubi an ´nen Q-Src ranzuhängen. Wetten, daß von den Leuten dort selber keiner durchblickt! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.