|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Revil Senior JLI'ler
Anmeldedatum: 28.07.2002 Beiträge: 242
Medaillen: Keine
|
Verfasst am: 28.10.2002, 16:47 Titel: Text Ersetzungen |
|
|
Hi,
Ich arbeite seit einiger Zeit an einem Jump'n Run und mittlerweile is der Quellcode einigermaßen umfangreich und beginnt unübersichtlich zu werden. Ich habe schon die meisten sachen in Klassen exportiert und in die Hauptdatei includiert, allerdings ist die Hauptdatei immer noch ziemlich groß und ich würde sie gerne weiter zerlegen. Dazu will ich einfach logisch zusammen gehörige Teile in kleine Dateien auslagern. Nun wüßte ich gerne ob es eine Methode gibt, solche kleinen Dateien in die Hauptdatei einzubinden, und zwar so das sie vor dem kompilieren vom Compiler automatisch so gehandelt werden als würde der Text noch direkt in der Hauptdatei stehen. Das geht nicht mit #include , weil er da will das ich alle Dateitypen usw. in der unterdatei auch definiere...
Es sollte also so aussehen:
Haupdatei:
Quellcode1
Quellcode2
Quellcode3
#Ersetzungsbefehl auslagerdatei1
Quellcode4
#Ersetzungsbefehl auslagerdatei2
Quellcode5
auslagerdatei1:
blabla1
auslagerdatei2:
blabla2
Und für den Kompiler sollte es dann eben beim kompilieren so aussehen:
Quellcode1
Quellcode2
Quellcode3
blabla1
Quellcode4
blabla2
Quellcode5
Weiß jemand wie das geht? |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 28.10.2002, 17:10 Titel: |
|
|
Das muss mit #include gehen. #include wird vor dem kompilieren aufgelöst. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 44 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 28.10.2002, 17:40 Titel: |
|
|
Du mußt den auszulagernden Teil als Funktion schreiben, damit diese dann an der entsprechenden Stelle aufgerufen werden kann. Dabei mußt du natürlich auf die Gültigkeitsbereiche der Variablen achten.
Auch funktionabel aber bei weitem nicht so schön ist die Möglichkeit, auszulagernde Codezeilen als Makros zu implementieren.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Revil Senior JLI'ler
Anmeldedatum: 28.07.2002 Beiträge: 242
Medaillen: Keine
|
Verfasst am: 28.10.2002, 20:59 Titel: |
|
|
hm es geht nicht mit #include weil ich eine Funktion habe in der zum Beispiel der Dateityp FILE oder eine wo DDSurfaces vorkommen habe.
Und ich will vermeiden das ich da nochmal alle header dateien einbinden muß ...
Wie funktioniert das denn mit den Makros?
Es muß doch irgendeine/n möglichkeit/Befehl geben, meine Auslagerungsdateien an die entsprechenden Stellen zu kopieren, BEVOR der Compiler irgendwas macht, also in diesem Fall prüft ob alle Dateitypen definiert sind... |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 28.10.2002, 21:17 Titel: |
|
|
Das ist aber sehr unsauber... normalerweise packt man alles in Funktionen und/oder Klassen.
Zu deiner Frage:
Pack die Makros in nen Header und binde sie mit ein. In deinen Funktionen machst du dann z.B. das
Code: |
void main()
{
...
SNIPPET1;
...
SNIPPET2;
}
|
In deinem Header hast du dann z.B. das:
Code: |
#define SNIPPET1 cout << "Das" / // / oder \ bin .. bin mir net sicher
<< "ist" /
<< "ein Test";
...
|
_________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 44 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 28.10.2002, 21:39 Titel: |
|
|
Ich hab ja schon gesagt, das das sehr unsauber ist...
Aber mir scheint, einige Leute hier sollten sich mal mehr Gedanken mit der Projektplanung machen, bevor sie Losprogrammieren - das wär übrigens ein gutes Kapitel für dein Buch, Christian! - Projektplanung
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Revil Senior JLI'ler
Anmeldedatum: 28.07.2002 Beiträge: 242
Medaillen: Keine
|
Verfasst am: 28.10.2002, 22:54 Titel: |
|
|
ne das ist mir wirklich zu unsauber =D
jo ich geb zu das das spiel nicht allzu gut geplant war... (vor allem deswegen, weil es mein erstes projekt ist und ich gar keine vorstellung davon hatte, was ich alles brauchen werde)
Aber selbst wenn ich ein sauber geplantes Projekt hätte, muß es doch noch einen anderen Weg als das normale includieren geben... Es muß doch irgendeinen Befehl geben der einfach meine Textdatei statt des Ersetzungs-Befehl kopiert.......
Klar man kann auch durch einige tausend Zeilen scrollen und sich die Stellen so raussuchen, aber das ist halt nicht so übersichtlich und praktisch... |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|