Richtige Maps erstellen.
Übersicht

paDBetreff: Richtige Maps erstellen. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann mir jemand sagen wie ich mit Blitz3D eine "Datei"-Map erstelle.
Ich habe nun schon oft gehört und gelesen das ich für ne gute und gescheite Map eine Datei brauche und die nicht z.b. in einem Mesh gemacht wird. Aber wie sieht so eine Datei aus? Ich habe mir das ganze ca. so gedacht: obj=baum1.3ds x=15 y=7 z=23 obj=map01.3ds x=0 y=0 z=0 ..... nur ich bekomm es irgendwie nicht hin die vernümpftig auszulesen..kann mir da jemand weiter helfen? paD |
||
http://www.spaceman-world.de |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe deine Frage nicht ganz, aber denoch versuche ich zu interpretieren... In einer *.3ds -Datei können breits Bäume und andere Objekte vorhanden sein! Willst du sie denoch separat laden, dann schreibe eine Funktion die das für dich erledigt. Es kann von mir aus auch eine Textdatei sein in welcher die Positionen der Objekte gespeichert sind. Lädst du dann ein Level, dann lädst du eigentlich deine Datei (Beispielsweise: Level_01.dat) aus, wo Informationen geschrieben stehen: Lade map01.3ds und positioniere an XYZ, lade baum1.3ds und positioniere an XYZ, Levelende.
Falls du ein Terrain (per CreateTerrain) erstellst, dann kann man auch die Positionen der Objekte in die Highmap integrieren. Ich glaube mal gelesen zu haben, daß der Highlevel des Terrains aus einer highmap.bmp nur die Farbe rot ausgelesen wird. Ist das wirkich so, dann kann man die beiden übrigen Farben für zB Objektart (Baum, Gebüsch, Fels...) und Eigenschafften (wie besonders stachelig, flauschig...) verwenden. Die restlichen Farben müssten dann aber per ReadPixel aus der highmap.bmp ausgelesen, ausgefiltert und wenn Farbe nicht 0, dann in eine Funktion springen wo die Objekte geladen und positioniert werden. |
||
paD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hectic hat Folgendes geschrieben: Ich verstehe deine Frage nicht ganz, aber denoch versuche ich zu interpretieren... In einer *.3ds -Datei können breits Bäume und andere Objekte vorhanden sein! Willst du sie denoch separat laden, dann schreibe eine Funktion die das für dich erledigt. Es kann von mir aus auch eine Textdatei sein in welcher die Positionen der Objekte gespeichert sind. Lädst du dann ein Level, dann lädst du eigentlich deine Datei (Beispielsweise: Level_01.dat) aus, wo Informationen geschrieben stehen: Lade map01.3ds und positioniere an XYZ, lade baum1.3ds und positioniere an XYZ, Levelende.
genau so mein ich das, aber ich bekomm solch eine datei nicht ausgelesen und dabei brauch ich hilfe ^^ paD |
||
http://www.spaceman-world.de |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist recht einfach.
Einfach mit Readstring oder ReadLine einlesen und entsprechend verarbeiten. Das Parsen der Daten ist nicht schwer (einfach per mid den String durchgehen und nach etwas bestimmten suchen zb) ... und dann halt afür sorgen, dass erzeugt wird, was in der File steht ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
paD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ![]() paD |
||
http://www.spaceman-world.de |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Möchtest du programmieren?
Dann solltest du dich vielleicht ein wenig anstrengen. Es gibt hier verschiedene Beispiele fürs parsen von textdateien und mit der geschriebenen Anleitung oben sollte das eigentlich kein Problem sein, aber nochmal ein wenig ausführlicher. Pseudocode: Datei öffnen While "Nicht am Ende der Datei" lese nächste Zeile Untersuche den String nach einem bekannten Befehl Verhalte entsprechend Befehl (zb objekt laden und kommende 3 Zeilen auslesen als Position) wend Datei schliessen In Befehlen heisst das mehr oder weniger OpenFile, CloseFile, ReadLine, Mid und Select - Case - EndSelect Damit solltest du eigentlich dein Problem lösen können |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
paD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich weiß wie ich eine datei zeile für zeile einlese, aber dann bekomm ich immernoch nicht den inhalt umgewandelt..wenn in der datei z.b. steht:
obj=baum1.3ds x=20 y=15 z=2 jetzt muss ich ja irgendwie dieses object auch an der stelle positionieren..und das bekomm ich nicht hin. kann mir da nicht jemand elfen? |
||
http://www.spaceman-world.de |
![]() |
theotheoderich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Pseudocode:
Auslesen obj=baum1.3ds Objekt laden (tx und ty sind Koordinaten einer Tilemap; kann man mit Types machen) baum(tx,ty)=LoadMesh("baum1.3ds") Objekt positionieren PositionEntity baum(tx,ty),x,y,z ...und das für jede Zeile, schreib am Besten Funktionen die das laden und positionieren übernehmen. |
||
Gruß
TheoTheoderich -- The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer. |
![]() |
eleXityehemals "BlackProgrammer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Hier mal ein Kleiner Denkanstoss BlitzBasic: [AUSKLAPPEN]
Und die Lever1.dat Code: [AUSKLAPPEN] LoadEnv = Cube.3ds PosX = 0 PosY = 0 PosZ = 0 LoadEnv = Cube.3ds PosX = 0 PosY = 0 PosZ = 0 MFG |
||
nVidia 570GTX | AMD Phenom II X6 | 8 GB RAM | 1TB | Win 7 Ultimate 64 SP1 | B3D, BMAX, BP, C#
Projekt : Worklog |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
~VERSCHOBEN~ Da dem Schreiber scheinbar noch nicht mal Positionieren als solches klar zu sein scheint, definitiv für den Anfängersektor Dreamora |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group