[IDEal] Projektdateien aus übergeordneten Ordnern
Übersicht![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
![]() |
PacManiBetreff: [IDEal] Projektdateien aus übergeordneten Ordnern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen,
wenn man in IDEal versucht, Dateien zum Projekt hinzuzufügen, die nicht im Projektverzeichnis liegen, besteht IDEal immer darauf, dass diese Dateien in den Projektordner kopiert werden müssen, sonst kann man sie nicht benutzen: ![]() Das hat mich ziemlich geärgert, weil ich einige Codedateien global in allen meinen Spielen verwende, da sie wichtige Konstanten oder ganze Erweiterungen für Blitz darstellen, die allgemein nutzbar sind. Durch die Kopie dieser mehrfach verwendeten Dateien muss ich bei Aktualisierung des Codes darin immer wieder die Kopien für jedes Spiel händisch auf den neuesten Stand bringen. Aber IDEal lässt sich ganz einfach austricksen, wenn man die Projektdatei bearbeitet. Im folgenden Beispiel habe ich folgende Ordnerstruktur: Code: [AUSKLAPPEN] + Entwicklungsverzeichnis
+ "Includes"-Verzeichnis mit Erweiterungsmodulen + "Spiel 1"-Ordner mit Spiel-spezifischen Codedateien + "Spiel 2"-Ordner mit Spiel-spezifischen Codedateien Ich möchte nun Dateien aus dem Includes-Verzeichnis in die Projekte von Spiel 1 und 2 einbinden. Nach Öffnen einer IDEal-Projektdatei mit einem Texteditor wie notepad ist geübten Anwendern alles schnell klar: Code: [AUSKLAPPEN] [IDEal Project file]
<Settings> Version="1" Expanded="True" Icon="" MainFile="Test.bb" Compiler="Blitz3D" CommandLine="" </Settings> <Folders> </Folders> <Files> AbsPath="\Accelerated2D.bb" PrjFolder="" Line="0" Column="0" Tip="0" Visible="False" AbsPath="\Test.bb" PrjFolder="" Line="0" Column="0" Tip="0" Visible="False" </Files> Interessant ist hier der Files-Tag. Hier zwischen steht (nicht ganz XML-konform) je Zeile ein Verweis auf eine Projektdatei. Darin beachten wir nur die "AbsPath"-Eigenschaft und ihren Wert. Wenn die Datei im Projektverzeichnis liegt, wie es standardmäßig der Fall ist, steht hier Code: [AUSKLAPPEN] "\Dateiname.bb"
Wie einigen von euch vielleicht bekannt, kann man in Pfadangaben durch ".." einen Ordner nach oben wechseln. Da wir erstmal aus dem Projektverzeichnis einmal nach oben wechseln müssen, tragen wir also folgendes ein: Code: [AUSKLAPPEN] "..\Dateiname.bb"
Nun wird im Entwicklungsordner nach "Dateiname.bb" gesucht. Nun liegen unsere Erweiterungsmodule im Beispiel oben allerdings im Unterordner "Includes", also müssen wir noch dieses Ordnernamen zum Pfad, natürlich getrennt mit Schrägstrichen \ zum Pfad hinzufügen: Code: [AUSKLAPPEN] "..\Includes\Dateiname.bb"
Nun speichern wir die Projektdatei und siehe da: IDEal kapiert's ohne zu Murren. Auch die Kompilierung bereitet keine Probleme. Kurz gesagt konnte ich keine Nachteile oder Fehler bei meinen Tests verzeichnen. Wenn wir diese Verweise in allen unseren Spielprojekten einrichten, haben wir unsere Erweiterungen wunderbar zentral abgelegt: Ändern wir an ihnen einmal etwas, werden die Änderungen automatisch in jedes Spiel übernommen, ohne das man umständlich händisch die Kopien in den Spieleordnern aktualisieren muss! Natürlich darf man beim nachträglichen Ändern des Pfads nicht vergessen, die Include-Befehle im Spielcode selber anzupassen ![]() Vermutlich funktionieren sogar absolute Pfadangaben. Darauf möchte ich aber aus Gründen der Flexibilität abraten. Und unter ungepatchten Windows 98-Betriebssystem könnte man Anwender bestimmt mit dem concon-Bug ärgern, um durch die manipulierten Pfadangaben den Computer zum Absturz zu bringen ![]() Zum Schluss noch meine Beispielprojektdatei (im Projekt selber liegen die Erweiterungsmodule in dem virtuellen Projektverzeichnis "Includes", deswegen die Unterschiede bei den weiteren Eigenschaften je Files-Tag-Zeile): Code: [AUSKLAPPEN] [IDEal Project file]
<Settings> Version="1" Expanded="True" Icon="" MainFile="Test.bb" Compiler="Blitz3D" CommandLine="" </Settings> <Folders> AbsPath="\Includes" Expanded="True" </Folders> <Files> AbsPath="Accelerated2D.bb" PrjFolder="" Line="0" Column="0" Tip="0" Visible="False" AbsPath="..\Includes\BlitzExtensions.bb" PrjFolder="\Includes" Line="0" Column="0" Tip="0" Visible="False" AbsPath="..\Includes\FrameIndependency.bb" PrjFolder="\Includes" Line="0" Column="0" Tip="0" Visible="False" AbsPath="Test.bb" PrjFolder="" Line="0" Column="0" Tip="0" Visible="False" </Files> |
||
Übersicht
![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
Powered by phpBB © 2001 - 2006, phpBB Group