Datei im Ordner vorher ohne kompletten Pfad aufrufen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: Datei im Ordner vorher ohne kompletten Pfad aufrufen?

BeitragDi, Aug 17, 2010 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich entschuldige mich für den komischen Titel, allerdings fiel mir kein anderer ein, der mein Problem besser beschreiben würde. Also ich habe folgendes Problem:

ein paar dateien (Texturen) liegen in einem Ordner vor dem Objekt, welches die Texturen braucht. Also es gibt einen Ordner Namens "Texturen" und einen "Objekt1". Jetzt möchte ich die Texturen aus dem ordner Texturen auf das Objekt legen. wie kann ich den Pfad angeben, ohne den kompletten Pfad zu benutzen (also anstatt "C:\bla\blabla\Texturen" irgendetwas anderes, damit das Programm auch auf anderen PCs läuft.)

Weiterhin interessiert mich, wie man ein Objekt mit über 250 Surfaces in BB texturiert, oder kann man das auch mit dem modeller texturieren und texturiert laden?

Ich hoffe ich habe mein Problem verständlich erklärt, thx schonmal im vorraus
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
 

Pousup

BeitragDi, Aug 17, 2010 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo liegt denn die BB-Datei? Um auf den übergeordneten Ordner zuzugreifen kannst du "../*ordnername*" nutzen, keine Ahnung ob es das ist was du suchst.
www.mikes-frittenbude.blogspot.com Gaming, Musik, Lifestyle & mehr

Pummelie

BeitragDi, Aug 17, 2010 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Man muss keine eintgültigen Pfade angeben, man kann auch von der Exe aus handeln.

Kleines Beispiel:

Die exe liegt im verzeichniss:
Code: [AUSKLAPPEN]
C:\\Programme\\MeineKleineHobbyfirma\\Programm1

in diesem Verzeichniss gibt es die 2 Unterornder:
Code: [AUSKLAPPEN]
C:\\Programme\\MeineKleineHobbyfirma\\Programm1\\Objekt1

Code: [AUSKLAPPEN]
C:\\Programme\\MeineKleineHobbyfirma\\Programm1\\Texturen


dann muss ich den Pfad im Programmer nur so angeben:
Code: [AUSKLAPPEN]
Objekt1\\objekt.x

Code: [AUSKLAPPEN]
Texturen\\textur1.jpg


Ich haffe das hast duz gemeint Confused
It's done when it's done.
 

CO2

ehemals "SirMO"

BeitragDi, Aug 17, 2010 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
nicht ganz... trotzdem thx.

Ich möchte ja, dass die Objekte quasi "modbar" sind, also dass es extra externe Dateien gibt. Des Speicherplatzes halber (es gibt ja noch objekt2, objekt3, etc.) hab ich die texturen ausserhalb der objekt-ordner gemacht. Damit es übersichtlicher ist, sind alle dateien eines objektes im jeweiligen ordner. jetz kommt die "definitions-datei", diese liegt im objekt-ordner des definierten objektes und bestimmt, welche texturen benutzt werden. daher muss ich erst ein ordner zurück gehen (von der def-datei aus gesehen) um dann auf den texturen ordner zuzugreifen.)

um es nochmal zu veranschaulichen:

data-Ordner:
Code: [AUSKLAPPEN]
textures
objekt1
objekt2
objekt3


textures-Ordner:
Code: [AUSKLAPPEN]
texture1.png
texture2.png
texture3.png
etc.


objekt-Ordner:
Code: [AUSKLAPPEN]
model.x
model.def


model.def:
Code: [AUSKLAPPEN]
UseTexures("" + hierkommtderpfadreinderzudentexturenführt + "")
andereEintraege
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Ana

BeitragMi, Aug 18, 2010 6:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir nicht wirklich sicher ob ich dein Problem verstehe aber du hast eine exe datei und mehrere quell datein in unterordnern. Die Ordneraufrufe finden ja von der exe datei statt, also kannst du Code: [AUSKLAPPEN]
tex1 = loadtexture(".\tollerunterordner\tex.png")
verwenden. Mit Objekt meinst du ein Mesh? dann kannst du Code: [AUSKLAPPEN]
entity1 = loadmesh(".\beinahegenausotollerunterordner\objekt1.3ds")
verwenden.

Dann sind beide im Hauptspeicher und es ist völlig schnurtz ob die nun in unterordnern sind oder nicht, von der Festplatte direkt Daten auszulesen ist auch wirklich wirklich langsam.

Hubsi

BeitragMi, Aug 18, 2010 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Zum Ordnerproblem:

loadirgendwas("../schön.jpg")

sollte das gesuchte sein.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Eingeproggt

BeitragMi, Aug 18, 2010 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier scheint sich niemand so recht auszukennen, ich auch nicht ehrlich gesagt...
Aber die einfachste Variante die auch funktionieren sollte:
Du schreibst in deine model.def den Pfad zu den Texturen relativ zur exe, nicht relativ zur model.def. (sprich zB "textures-Ordner\textures1.png")
Einfach aus dem Grund weil ja letztendlich die exe den Pfad aufruft, nicht deine Definitions-Datei.
Damit geht zwar irgendwie der Sinn der gut strukturieren Unterordner verloren aber es sollte hinhauen und das machen was du uns hier als Problem schilderst.

mfG, Christoph.

Anmerkung: Es geht natürlich auch "zwanghaft" aus dem model.def-Ordner.
Dazu müsstest du den Pfad mal mit Stringbefehlen zerlegen und dann mit ChangeDir in das Verzeichnis gehn und dann wie schon so oft geschrieben hier mit "..\Ordner" arbeiten.
Aber das is mühsam...
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

CO2

ehemals "SirMO"

BeitragMi, Aug 18, 2010 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, ok hab verstanden Smile, danke.

Das bringt mich aber zur zweiten Frage: Wenn ich ein Objekt (ja, meinetwegen auch Mesh Smile) im 3D-Modeller (Blender) texturiere, kann ich es dann Texturiert mit BB laden, auch wenn die texturen nicht im selben ordner wie das mesh ist?
oder kann ich die pfäde zu den texturen in der .x-datei ändern? dann müssen es aber relative pfade sein, damit das programm auch auf jedem x-beliebigen rechner läuft.

Und ich hab noch ne frage:
wie macht man ketten von nem panzer in 3d? ich meine muss man sie animieren, oder kann man die auch in BB "drehen" lassen?

thx schonmal im vorraus Smile
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Skabus

BeitragMi, Aug 18, 2010 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Zur 2. Frage:

Hängt von der Art ab wie du etwas darstellen willst und obs am Ende auch gut aussieht.

Du kannst z.B. für die Ketten eine Textur zuweisen die du dann in B3D animieren kannst, damit
kannst du durch ne animierte Textur die Ketten "faken".

Wenn du dir die Mühe machen willst, kannst du dein Modell auch direkt animieren mit deinem 3D-Programm.
Wenn du die Ketten dann "bewegen" lassen willst, lässt du B3D einfach die entsprechende Animation
die du erstellt hast abspielen.

Siehe dazu:

LoadAnimMesh

Die Antwort auf die erste Frage würd ich auch gerne mal wissen.

Man kann ja nachträglich die Textur nochmal hinzufügen.
Die Texturkoordinaten werden ja mit dem Model geladen, nur die Texturdatei wird nicht gefunden.
Wenn du die Textur nochmal manuell lädst und dem Objekt zuweist, sollte dein Objekt sofort
korrekt texturiert sein.

Ist allerdings unschön, dass man dann ständig die Textur manuell laden und draufpappen muss.
Wüsste nur nicht wie mans hinkriegt die Texturen separat in Ordner zu speichern und es dann
so hinzubekommen, das die Textur dennoch gefunden wird... Confused


Hoffe ich konnt nen bissle helfen...

MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu
 

CO2

ehemals "SirMO"

BeitragMi, Aug 18, 2010 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank, Skabus.

Ich werd mich mal dran versuchen und hoffen, dass was gutes dabei rauskommt Smile

Ich hätte da noch ne Frage:
Wie macht man am besten kleine 3D-Szenen, also videos, die den Spieler darauf hinweisen, was er zu tun hat?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

hazumu-kun

BeitragMi, Aug 18, 2010 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es 2 Möglichkeiten, in Game-Grafik und dann ein Script ablaufen lassen, dann ist dein Programm in dem Moment Regisseur.
Oder vorgerenderte Filmsequenzen.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group