3 Ebenen Programmierung
Übersicht

![]() |
NightPhoenixBetreff: 3 Ebenen Programmierung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mal ne kurze Frage zu verschiedenen Programmierebenen, bzw. "Level"
Wenn ich in einem Spiel zu einer Stelle komme wo ich in ein neues Level gehe und damit völlig neue Objekte und neue Variablen verwende, wie muss ich das dann programmieren? Muss ich für jedes Level eine neue .bb Datei machen? So wärs irgendwie einfacher für mich, als wenn das alles in einem Code steckt. Wie sollte man das machen? MfG. |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
du solltest die Level an sich überhaupt nicht programmieren, sondern nur ein Programm mit dem du jene erstellen kannst, und ein anderes, was jene dann lädt.
MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein das sollen vorgefertigte level sein, selbst positionierte objekte...
stell dir ein spiel vor.... gothic2 beispielsweise... man läuft von khorinis in die alte minenkolonie, es kommt ein ladebildschrim und man ist in einer neuen welt. man brauch ja ganz neue schleifen, neue lichter, neue objekte wie realisiert man sowas im programmcode? am besten noch übersichtlich ^^ |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach doch 2 Levels und wenn du an der Position wo das andere level kommen soll dann lädst du das eine level und machst das andere level weg also löschen^^ | ||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
@TheFreak
schonmal bemerkt dass das ja die frage ist? ![]() .... wie realisiere ich sowas im programmcode? BESSERES BEISPIEL: Ich spiele auf der Kampagnenkarte mit völlig verkehrten größenverhältnissen und lowpoly Mini-Objekten eine schlacht beginnt das spiel lädt eine völlig neue welt: die Schlachtkarte! mit naturgetreuen größenverhältnissen und detailierten objekten mit komplett anderer Textur -> es ist so bei "Rome - Total War" Dann haben wir ein 2 Ebenen Spiel Die 3. Ebene wäre eine 1st person perspektive wo man auf einem noch detailreicherem schlachtfeld rumläuft und selbst daran teilnimmt! JEDES MAL ZWISCHEN DEN EBENEN LIEGEN LADEZEITEN, WENN ICH VON EINER EBENE ZUR ANDEREN WECHSEL Jemand Ideen wie es die ganzen Spiele machen? Wie würdet ihr es machen? MfG. |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
auch dort brauchst du keine neuen Schleifen etc. ich schreib dir nun einfach auf wie ich es machen würde. Ich würde einen Editor schreiben, der mit Types arbeitet und in dem du deine Lichter, Objekte und Landschaften gestalten kannst. Nun schreibst du das ganze vor dem Beenden in eine Textdatei, die so aussehen könnte:
[Lights] "Mainlight" Position 10,10,10 Rotation 100,0,0 "Secondlight" ... [Objects] "Tree" Name "baum.b3d" TexName "baum.png" Position 10,0,10 Rotation 0,100,0 usw. im spiel musst du dann nur alle Objecte auslesen, für jedes einen Type erstellen und es an die entsprechende Stelle setzen, bei einem Levelwechsel, werden alle alten Types gelöscht und die des neuen Levels dafür geladen. MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
klingt sehr kompliziert.... hab noch nie mit types gearbeitet.... geschweige denn extra einen editor erstellt....
geht das denn nicht noch einfacher? reicht es erstmal wenn ich mir zum anfang viele .bb dateien mache und sie später "zusammenfüge"? |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du noch nie mit Types gearbeitet hast, solltest du dir das schnellstens angewöhnen, bevor du irgendetwas anderes machst. Types sind verdammt wichtig. | ||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ist ein Types Tutorial:
http://www.robsite.de/daten/tutorials/Types.zip |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke! ![]() also um das mal grob zu sagen: types sind sowas wie programmabschnitte die informationen enthalten und nur in einem bestimmten fall von blitz gelesen werden? |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein:D
Types kann man mit C++ Strukturen vergleichen... hab ich aber auch bestimmt schon 10 mal erklärt... such mal... MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würd sagen, Types sind sowas wie Arrays nur mit mehr Möglichkeiten (Man ist nicht an eine bestimmte Länge gebunden) | ||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
also das tutorial über types ist das wohl vewirrenste was ich in meinem ganzen Leben jemals gelesen habe ![]() Mein Gehirn ist mindestens zur hälfte weggeschmolzen >.< soweit ich das jetzt verstanden habe ist das sowas wie ne interne Ordneranlegung, bloß den Sinn und Zweck konnte ich aus dem Tutorial nicht rausfinden. Was zur Hölle hat das mit ner adressdatenbank zu tun? >.< *gegen Wand spring* |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ein Sample wo man gut erkennen kann für was Types zu gebrauchen sind^^
Code: [AUSKLAPPEN] Graphics3D 800,600
SetBuffer BackBuffer() camera = CreateCamera() PositionEntity camera, 0,-100, 0 tempblock = CreateCube() PointEntity camera, tempblock FreeEntity tempblock Type cubes Field entity End Type While Not KeyDown(1) If MouseDown(1) c.cubes = New cubes c\entity = CreateCube() PositionEntity c\entity, Rand(200)-100, Rand(50), Rand(200)-100 EntityColor c\entity, Rnd(255), Rnd(255), Rnd(255) EndIf UpdateWorld RenderWorld Flip Cls Wend Hoffentlich hilft dir das ![]() |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mein erstes großes Game auch ohne Types geproggt....wenn ich mir das heute wieder anguck denk ich nur "Ach du sch***e" ![]() Es ist zwar sehr kompliziert zu verstehen aber es MUSS sein ![]() |
||
Zitat:
Wie poste ich falsch? Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie hieß denn das Game? ![]() |
||
![]() |
Kernle 32DLL |
![]() Antworten mit Zitat ![]() |
---|---|---|
Types sind nicht schwer ^^
jedenfalls, wenn man wie ich einen weiteren Befehl hinzufügt. Dann wird alles um einiges leichter.... Code: [AUSKLAPPEN] Type Baum
Field mesh Field Name$ Field X_Cord Field Z_Cord End Type Global Baum.Baum ;<--- den Befehl meine ich !!! ;Erstellen Baum = New Baum Baum\mesh = CreateCube() ;später hier irgenteine mesh-lade-routine zwischenklemmen Baum\Name = "Hans" ;OK, sinnlos ^^ Baum\X_Cord = Rand(0,100) ;Baum irgentwo platzieren... Baum\Z_Cord = Rand(0,100) ;Baum irgentwo platzieren... PositionEntity Baum\mesh,Baum\X_Cord,0,Baum\Z_Cord Baum = New Baum Baum\mesh = CreateCube() ;später hier irgenteine mesh-lade-routine zwischenklemmen Baum\Name = "Peter" ;OK, sinnlos ^^ Baum\X_Cord = Rand(0,100) ;Baum irgentwo platzieren... Baum\Z_Cord = Rand(0,100) ;Baum irgentwo platzieren... PositionEntity Baum\mesh,Baum\X_Cord,0,Baum\Z_Cord ;Suchen For Baum = Each Baum If Baum\Name = "Hans" Then Exit ;Ist der name des aktuellen Baumes = Hans, wird die Schleife verlassen. Next ;Löschen Delete Baum Ich persönlich denke mir die Types wie ne Liste, zu der ich per "new" einen neuen Eintrag hinzufüge Einfach mit ner Einkaufsliste vergleichen ![]() Für weitere fragen stehe ich gerne zur verfügung, morgen eigne ich mich deinem Welt/Level Problem an (falls es bis dahin noch kein anderer getan hat). Grüßle: Kernle |
||
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
krass wieviel hilfe man hier bekommt =)
danke the freak und vor allem danke Kernle 32DLL! Also soweit denke ich sind das also Listen, die im Speicher "aktiviert" werden müssen (New...), wobei man dann mithilfe von Type\Field Befehle auf die einzelnen Punkte in den Listen zugreifen kann. Glaube ich ich bräuchte zum entgültigen verstehen wirklich das beispiel mit meinem level laden! ![]() also das sollte irgendwie sowas einfaches sein wie: erstes level erstellen zweier würfel farbe: rot (255,0,0) scale: 2 zweites level drei würfel farbe: grün (0,255,0) scale: 1 drittes level fünf würfel farbe: blau (0,0,255) scale: 0.5 Nur ne kurze Erklärung zum späteren Spiel ^^ In meinem Spiel wird s dann so sein, dass nach dem level laden, völlig andere Texturen verwendet werden und völlig neue Objekte, mit unterschiedlicher Anzahl natürlich auch. Von der Meer-Karte (1.Ebene mit lowlowlow poly vereinfachter Grafik und Zeitraffer) soll man auf die 2.Ebene "Meer" (Vogelperspektive direkt über dem schiff hohe details / reale Zeit und bei Bedarf dreifache) und wenn man an land andockt auf die 3.ebene (1st person / 3rd person mit hohen Details / auch reale Zeit) kommen. Vom Schiff aus (2.Ebene) sieht man die Stadt zwar, aber nicht diese, sondern eine stark vereinfachte Stadt (lowpoly / low textur) an Land selbst wird aus der 800 Poly Stadt eine 80.000 Poly Stadt mit Hafen, Händlern, einer Werft, eine Taverne, usw. Ich werde mich sobald ichs drauf hab an diese 3Ebenen rogrammierung ranmachen ![]() mfg. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...246#101246
Vielleicht hilft dir das weiter. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Als erstes machst du ne datei die du level1.txt nennst und schreibst rein:
Code: [AUSKLAPPEN] //Cube
Name = Heinz <- erstmal sinnlos ;-) Position = 10,10,10 Color = 255,0,0 Scale = 2 //Cube Name = Udo Position = 20,20,20 Color = 255,0,0 Scale = 2 das gleiche machst du für level 2 und 3. nun einen Type: Code: [AUSKLAPPEN] Type TObject
Field CubeHandle Field Name$ Field Scale Field red,green,blue Field x,y,z End Type im code öffnest du die Datei, liest mit Repeat ... Until ( EoF(file) ) eine Zeile nach der anderen aus, wendes Replace(zeile$," ","") darauf an, um alle Leerzeichen zur Formatierung zu löschen, wendest Lower (zeile$) darauf an, damit es egal ist ob man einen Befehl groß oder klein schreibt. Nun prüfst du ob zeile den wert "//cube" enthält, wenn das der Fall ist wird eine Neue instanz von TObject erstellt. nun brauchst du eine solche Funktion: Code: [AUSKLAPPEN] Function stringSplitt$(strg$,char$,selection%) Local newstrg$="" Local count%=0 Local charlength=Len(char$) If Instr(strg$,char$)>0 Then For i%=1 To Len(strg$) If Mid(strg$,i%,charlength)=char$ Then count%=count%+1:i=i+charlength If count%>selection% Then Exit If count%=selection% Then newstrg$=newstrg$+Mid(strg,i%,1) Next Else If selection=0 Then newstrg$=strg$ If selection>0 Then newstrg$="" EndIf Return newstrg$ End Function mit dieser kannst du einen string nur bis/von zu einem bestimmten Zeichen auslesen ( in unserem Fall dem "=" ). Alles was links vom gleich liegt ( stringSplitt(zeile$,"=",0) ) ist der Befehl alles rechts davon ( stringSplitt(zeile$,"=",1) der Wert für den Befehl. nun kannst du einfach mit If prüfen, ob alles was links vom gleich liegt position enthält, wenn ja, dann wendest du auf alles was rechts vom gleich liegt nochmal stringSplitt mit komma als Zeichen an, um nur X ( stringSplitt(rechtsvomgleich$,",",0) ) Y ( stringSplitt(rechtsvomgleich$,",",1) ) und Z ( na ![]() MfG[/code] |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group