Mehrfaches positionieren von Objekten?

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Abenteurer036

Betreff: Mehrfaches positionieren von Objekten?

BeitragDi, Jan 05, 2010 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich hab mal ne dumme Frage. Ich habe mein Spiel fast fertig und bin gerade auf suche nach möglichen Verbesserungen. Besonders stören mich die langen Listen wo ich dauernd die gleichen Objekte lade.

.z.B:
Code: [AUSKLAPPEN]
leben01=loadmesh(Leben.x)
leben02=LoadMesh(Leben.x)
leben03=LoadMesh(Leben.x)
leben04=LoadMesh(Leben.x)
usw...


oder genau so wie:
Code: [AUSKLAPPEN]
PositionEntity leben01,0,0,20
PositionEntity leben02,0,0,30
PositionEntity leben03,0,0,40
PositionEntity leben04,0,0,50
usw...


Wie kann ich das übersichtlicher bzw. platzsparender gestalten?
New Project [4%]
Schinken Maker [100%]

Tankbuster

BeitragDi, Jan 05, 2010 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Dim, Banks oder Types Wink

Aber das was du suchst geht gut mit Dimfeldern Wink
Twitter
Download Jewel Snake!
Windows|Android

Abenteurer036

BeitragDi, Jan 05, 2010 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wenn man Dimfelder benutzt sollte man das nicht auch aufs gesamte Spiel übertagen bzw. strukturieren oder ist das egal?
New Project [4%]
Schinken Maker [100%]

Midimaster

BeitragDi, Jan 05, 2010 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieviele fast gleiche "lebenxx" sind es denn?

Entstehen oft neue oder ist die Anzahl von Anfang an fix?

Werden ihre Werte häufig im Programm verändert, oder handelt es sich um "Statisten" im Spiel?

Abenteurer036

BeitragDi, Jan 05, 2010 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Also das Level mit dem meisten Leben hat 27 die immer alle von Anfang an fixiert sind. Die Werte der Leben werden nie verändert. (Auch nicht die der anderen Objekte.)
New Project [4%]
Schinken Maker [100%]

Midimaster

BeitragDi, Jan 05, 2010 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Tja, da ist es so an der Grenze... es geht noch mit Arrays. Das wäre auch leichter zu verstehen. Mach es doch so: zum Lernen änderst Du es jetzt in Arrays um. Kaum hast du das gecheckt, kannst Du es mit Types probieren....

Stufe 1:

Aus jedem...
BlitzBasic: [AUSKLAPPEN]
leben01

wird ein...
BlitzBasic: [AUSKLAPPEN]
leben(1) 


Was natürlich ein...
BlitzBasic: [AUSKLAPPEN]
Dim Leben(99) 

...oben nach Graphics 800,600.... benötigt.

Also so:

Aus jedem...
BlitzBasic: [AUSKLAPPEN]
leben01=LoadMesh(Leben.x)
...
PositionEntity leben01,0,0,20


wird ein...
BlitzBasic: [AUSKLAPPEN]
leben(1)=LoadMesh(Leben.x)
...
PositionEntity leben(1),0,0,20



Aber bevor Du jetzt alle Zeilen umänderst, kannst du auch schon mit FOR/NEXT Zeilen sparen!
  • Zuletzt bearbeitet von Midimaster am Di, Jan 05, 2010 23:58, insgesamt 4-mal bearbeitet

Abenteurer036

BeitragDi, Jan 05, 2010 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Midimaster hat Folgendes geschrieben:
...oben bei Graphics 800,600.... benötigt.


Warum genau 800,600?
New Project [4%]
Schinken Maker [100%]

Midimaster

BeitragDi, Jan 05, 2010 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
war nur so ein Beispiel, damit du die Stelle findest....

kurze Zwischenfrage: Was issen das leben.x?


Aber bevor Du jetzt alle Zeilen umänderst, kannst du auch schon mit FOR/NEXT Zeilen sparen!

BlitzBasic: [AUSKLAPPEN]
For i=1 To 27
Leben(i)=LoadMesh("Leben.x")
Next



und wenn das Positionieren so ordentlich weitergeht wie in den ersten 5 Leben, dann geht auch das:

BlitzBasic: [AUSKLAPPEN]
For i=1 To 27
PositionEntity Leben(i), 0, 0, 10+i*10
Next
  • Zuletzt bearbeitet von Midimaster am Di, Jan 05, 2010 23:49, insgesamt 2-mal bearbeitet

Abenteurer036

BeitragDi, Jan 05, 2010 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok Danke fürs Beispiel Very Happy werd mich melden falls es weitere Schwierigkeiten gibt.
New Project [4%]
Schinken Maker [100%]

Silver_Knee

BeitragDi, Jan 05, 2010 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
bei leben.c fehlen noch die "" Wink

Abenteurer036

BeitragDi, Jan 05, 2010 23:52
Antworten mit Zitat
Benutzer-Profile anzeigen
@Midimaster: Ein "Leben.x" ist ein X-Datei also ein 3D Mesh.
New Project [4%]
Schinken Maker [100%]

Midimaster

BeitragDi, Jan 05, 2010 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst ja mal den ganzen Code hier rein posten, dann schauen wir ihn gerne durch. Und wir können uns besser vorstellen, wovon du redest.

Bitte schau auch nochmal auf meinen vorherigen Beitrag, ich habe noch was dazugefügt.


Hast Du das mit den Anführungszeichen bemerkt? Das muss dann LoadMesh("leben.x") heißen!

Abenteurer036

BeitragMi, Jan 06, 2010 0:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo da hab ich mich vertippt^^ Aber im Original Code hab ich die "" natürlich gesetzt sonst würde es ja auch nichts laden. Den gesamten Code poste ich nur ungern weil ich auch einiges "Included" habe. Aber ich versuche gerade das mit Dim zu kapieren. Ich nehme an das in meinem Fall Types am besten wären. Mit denen kann ich die Leben auch noch rotieren lassen, außer einer von euch weis wie das mit Dimfeldern geht xD. Kann mir vielleicht einer ein Beispiel mit Types posten? Wäre sehr nett Very Happy
New Project [4%]
Schinken Maker [100%]

Midimaster

BeitragMi, Jan 06, 2010 0:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Was meinst du mit rotieren?

Abenteurer036

BeitragMi, Jan 06, 2010 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
TurnEntity leben,0,0.2,0
New Project [4%]
Schinken Maker [100%]

Silver_Knee

BeitragMi, Jan 06, 2010 0:17
Antworten mit Zitat
Benutzer-Profile anzeigen
also abgesehen davn dass du auch
Code: [AUSKLAPPEN]

Turnentity leben(count),0,1,0

machen kannst
fällt mir gerade auf, dass du mehrere male das gleiche modell lädst. Sollte das wirklich der Fall sein, versuche mal CopyEntity. Dann kannst du sozusagen auf das selbe Mesh verweisen es allerdings mehrere male Anzeigen, drehen texturieren etc.

Midimaster

BeitragMi, Jan 06, 2010 0:17
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, über Leben(1) bis Leben(27) kannst du sie überall und so oft du willst reincoden und wenn du alle leben verwenden willst dann immer so ('von' und 'bis' sind nur beispiele)

BlitzBasic: [AUSKLAPPEN]
For i = Von To Bis
TurnEntity Leben(i), 0, 0.2, 0
Next



senden doch wenigsten ein paar codestellen, wo wir sehen, wo und wie du "leben" im code verwendest.
  • Zuletzt bearbeitet von Midimaster am Mi, Jan 06, 2010 0:20, insgesamt einmal bearbeitet

Abenteurer036

BeitragMi, Jan 06, 2010 0:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich glaube ich habs einigermaßen kapiert falls ich noch Probleme haben sollte sende ich den Code.
New Project [4%]
Schinken Maker [100%]

Abenteurer036

BeitragMi, Jan 06, 2010 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Apptitle"Test"
Graphics3D 1280,720,32,2
SetBuffer BackBuffer()

ball=CreateSphere()
cube=CreateCube()
cam=CreateCamera()
light=CreateLight()

PositionEntity cam,0,20,0
RotateEntity cam,90,0,0
PositionEntity light,0,0,0

Dim Level(9,9)

Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0

Repeat
UpdateWorld()
RenderWorld()
Flip
Forever


Wie schaffe ich es, dass wenn ich bei Data z.B. 1 oder 2 eingebe ein Cube oder eine Sphere erscheint? (Wie gesagt ich hab keine Ahnung von Dim und Data)
New Project [4%]
Schinken Maker [100%]

Midimaster

BeitragMi, Jan 06, 2010 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Da kannst du fast schon das Beispiel hier aus der hilfe nehmen:

BlitzBasic: [AUSKLAPPEN]
Restore Leveldaten

Dim Level(9,9)
Dim Figuren(99)
For i = 1 To 9
For j = 1 To 9
Read Level( i, j )
If Level(i,j) = 1 Then
Figur(Nr)l = CreateSphere()
MoveEntity Figur(Nr),....
ElseIf Level(i,j) = 2 Then
Figur(Nr) = CreateCube()
MoveEntity Figur(Nr),....
EndIf
Nr=Nr + 1
Next


.Leveldaten
Data 0,0,0,0,0,0,0,0,0,0
Data ...

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group