nochmal ne Frage...
Übersicht

![]() |
jojoBetreff: nochmal ne Frage... |
![]() Antworten mit Zitat ![]() |
---|---|---|
also, mitlerweile veruche ich mir einen eigenen Terrain-Editor zu basteln!
Klappt ja auch alles ganz gut...aber eine problem stellt sich mir da! Der Editor wird so sein das ich durch die grob vorgefertigte Welt laufen kann und dann per Mausklick Meshs(Bäume,Steine etc.) und Texturen an ausgewählte stellen platzieren kann.Wie mache ich diese änderungen dauerhaft erhalten, soll heißen wie schreibe ich zum Beispiel in eine 3ds oder .x Datei??? Ich kenne den Aufbau dieser Dateien nicht, kennt jemand den aufbau einer .x oder 3ds Datei oder wie kann ich sonst die änderungen ablegen?? Das alles als Blitz-Code abzulegen währe doch irgendwie umständlich... Gruß Jojo |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Uff, etwas unglücklich ausgedrückt!
1. Benutzte im Editor Types, 2. Lade immer, ein Set von 3DS oder X oder B3D Dteien 3. Dann Speichere deine Bäume mit drehung, Scale,Art in einer Level datei ab 4. Lade diesse beim nächsten starten und Positioniere alles wieder! |
||
between angels and insects |
![]() |
Boris0190 |
![]() Antworten mit Zitat ![]() |
---|---|---|
mh er meint vermutlich, dass er dann das Terrain mit Bäumen und so in eine 3ds datei schreib (z.b.) um dann dieses terrain in BB nur mit einem Befehl zu laden. Also praktisch exportieren. ich glaub aber das is nich so einfach... | ||
If windows is the sollution, I want my problems back! -
The only way to have a friend is to be one |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
den level einfach mit ner entsprechenden hierarchy aufbauen und hier ma vorbei schauen: http://www.blitzbasic.com/code...p?code=866
damit sollte es eigentlich möglich sein das auf ne " laden und fertig " ebene zu bringen ![]() |
||
![]() |
jojoBetreff: ich nochmal |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich meine, wenn ich zum beispiel mein terrain durchlaufe und an bestimmten stellen andere texturen setzte, das dies dann auch im terrain gespeichert ist, also in der mesh datei oder dem Terrain.
Wenn ich im Terrain Bäume stetze, dann muß die position des Baumes ja irgendwie gespeichert werden.Aber wo speicher ich das... ich könnte ja hingehen und mir die Koordinaten aufschreiben und in dann per positionentity setzen, das ist mir aber zu umständlich...ich will das automatisieren, also beim durchlaufen will ich die Bäume setzen und dann irgendwie diesen terrain speichern, mit den positionen der bäume!! |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
also ich habe mir nen ganz simples Dateiformat ausgedacht das sieht so aus wenn du nur Objekte plazieren willst : TREE:-1484.93,944.177,4795.6,542.264 Bis zum Doppelpunkt ist ein Befehl der beim laden eine Funktion startet mit den Parametern die durch Komma getrennt sind . Code: [AUSKLAPPEN] .GLOBALE Dim para$(128) ;um einzelne Zeilen einer Textdatei in Parameter umzuwandeln Code: [AUSKLAPPEN] Function TreeNew(x#,y#,z#,rn#) ;MR 28.04.2003 ;Neuer Baum an x,y,z größe rn Tree.TreeType=New TreeType Tree\Entity=CopyEntity(tree_sprite) Tree\rn=rn y=MyTerrainY( land,x,y,z )+1 MoveEntity Tree\Entity,x,y,z ;Nicht Position !? ScaleEntity Tree\Entity,rn,rn*2,rn EntityBox Tree\Entity,-rn/2,0,-rn/2,rn,rn*4,rn End Function Code: [AUSKLAPPEN] Function TreesSave() ;MR 28.04.2003 ;Bäume speichern in Textdatei :-) ;--------------------------------------------------------------------- Print "Bäume speichern ..." Local f$="Data\Trees.txt" Local fh Local s$ fh=WriteFile(f$) If fh Then For Tree.TreeType=Each TreeType s$="TREE:"+EntityX(Tree\Entity)+","+EntityY(Tree\Entity)+","+EntityZ(Tree\Entity)+","+Tree\rn WriteLine fh,s$ Next CloseFile fh EndIf ;open ok Print "OK" ;--------------------------------------------------------------------- End Function Code: [AUSKLAPPEN] Function TreesLoad() ;MR 28.04.2003 ;Bäume laden aus Textdatei :-) TreesFree ;--------------------------------------------------------------------- Print "Bäume laden ..." Local f$="Data\Trees.txt" Local fh Local o$ If FileExists(f$)=True fh=ReadFile(f$) If fh Then While Not Eof(fh) o$=StringToFunc(ReadLine(fh)+Chr(13)) ;Return wird entfernt ,brauche ich aber noch ! DebugLog o$ Wend CloseFile fh EndIf ;open ok EndIf ;Datei ist da Print "OK" ;--------------------------------------------------------------------- End Function Code: [AUSKLAPPEN] Function StringToFunc$(FileInput$) ;MR 28.04.2003 ;----------------------------------------------------------------------------- String to Functions :-) Local c$,o$,x,x1,x2,p,i c$="" o$="" ;--------------------------------------------------------- ;Command x=Instr(FileInput,":") If x>1 Then c$=Mid(FileInput,1,x-1) c$=Upper(c$) EndIf ;--------------------------------------------------------- ;Clear Parameter p=0 For i=1 To 128 Para(i)="" Next ;Search for Parameters x2=0 If Len(FileInput)>x Then x1=x+1 Repeat x2=Instr(FileInput,",",x1) If x2=0 Then x2=Instr(FileInput,Chr(13),x1) ;or to End If x2>x1 Then p=p+1 Para(p)=Mid(FileInput,x1,x2-x1) x1=x2+1 EndIf If x2=Len(FileInput) Then x2=0 ;no endless loop ;-) Until x2=0 EndIf ;------------------------------------------------------------> COMMAND <--- ;Functions If Len(c$)>0 Then Select c$ Case "TREE","BAUM" ;x,y,z,rn TreeNew Para(1),Para(2),Para(3),Para(4) o$=c$ Case "TARGET","ZIEL" ;x,y,z,r,g,b TargetNew Para(1),Para(2),Para(3),Para(4),Para(5),Para(6) o$=c$ Default o$="UNKNOWN COMMAND "+c$ End Select EndIf ;Command >0 ;--------------------------------------------------------- ;Output what i have done :-) If Len(o$)>0 Then o$=o$+":" If p>0 Then For i=1 To p o$=o$+Para(i) If i<p Then o$=o$+"," Next EndIf If Len(o$)>0 Then Return o$ EndIf End Function |
||
![]() |
jojoBetreff: man man ... |
![]() Antworten mit Zitat ![]() |
---|---|---|
wo haste denn das so schnell her??
Sieht aber ganz gut aus...werde ich mir mal reinziehen und mal überlegen wie ich es umsetzte...aber die Idee kommt meiner überlegung schon sehr nahe!!! Gruß und dank Jojo ![]() ![]() |
||
![]() |
jojoBetreff: shit vergessen zu sagen |
![]() Antworten mit Zitat ![]() |
---|---|---|
E I N A B S O L U T G E I L E S F O R U M H I E R ...
H I E R W E R D E N S I E G E H O L F E N ! ! ! ! ! Danke an alle die immer ihren "Senf" dazugeben... Gruß Jojo ![]() |
||
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ jojo: Zitat: wo haste denn das so schnell her??
sorry aber ich denke er hat sich gedanken darüber gemacht. Wie die meisten Progger das tun (sollten).
|
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
;MR 28.04.2003
Jo, das ist auch eine sehr gute Routine die das Leben erleichtert . Einmal erfunden für die Ewigkeit ![]() |
||
![]() |
jojo |
![]() Antworten mit Zitat ![]() |
---|---|---|
@furbolg
Wenn wir das Rad immer zweimal erfinden müssten, würden wir in der selben zeit weniger fortschritte machen. Warum nicht das wissen teilen... So bekommt man eine Bibliotek, ähnlich wie C++... ![]() ![]() Gruß Jojo |
||
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Jojo:
Also komm, der Code ist mit überlegen ne sache von maximal ner halben Stunde. C++ benutzt ich auch dynamisch Librarys und Interface damits später Leichter ist aber nich für jeden Kram. Und doch, das Rad neu erfinden bringt einem was, außer arbeit, erkenntnis. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@furbolg
In dieser Funk. steckt mehr als eine halbe Std. Arbeit , außerdem müssen Funk. erst reifen und sich entwickeln bis sie wirklich gut sind und sowas braucht eben seine Zeit . Ich finde auch das man mehr austauschen sollte weil das bringt uns alle wirklich nach vorne . |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group