objekt in string umwandeln
Übersicht

bjhBetreff: objekt in string umwandeln |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
einem objekt wird in bb3d ja ein bestimmter wert zugewiesen: xyz=createcube() jetzt hat xyz irgendeinen integerwert. kann ich jetzt durch diesen integerwert irgendwie herausfinden, wie das objekt heißt? also den string, der xyz beinhaltet also keine zahlen. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hieße Reflection und nein, BlitzBasic kennt nicht seinen eigenen Quellcode.
Da musst du dir was einfallen lassen. Für 3D Objekte gäbe es NameEntity ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
funktioniert leider nicht.
ich hab mir eine funktion gebastelt: create_mesh(xyz,"xyz") der erste parameter ist das objekt, der zweite ist der dateiname. weil beides eigentlich das selbe ist, dachte ich, dass das vielleicht auch anderst funktionieren würde. auch egal nicht so schlimm. danke für deine hilfe |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
du kannst deinem Objekt/Mesh nur einen namen zuteilen.
Das handle bleibt immer eine Zahl! Die speicheradresse in deinem Speicher besteht ja auch nicht aus wörtern.... Wenn du ein Objekt manipulieren willst, dann sprichst du es ja auch mit seinem Hanlde/dem Varriablennamen an. Sind die sinnvoll bezeichnet dann gibt es doch da keine Probleme. Für tolle ausgaben kann man noch den entityname befehl hinzufügen... Prüf doch mal deine Create_cube() funktion. Code: [AUSKLAPPEN] cube = CreateCube() PositionEntity cube, 0, 0, 5 NameEntity cube, "Würfel" Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was du machen könntest, erstelle jedes Objekt in einem Type, mit den Feldern objekt%, name$ und welche du sonst noch brauchst.
Wenn du jetzt ein Objekt nach Namen suchen möchtest, schreib dir eine Funktion Pseudocode BlitzBasic: [AUSKLAPPEN]
Somit bekommst du das gesuchte Objekt |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für die vielen antworten, aber ich brauch das nicht ![]() ich muss bei meiner lösung dann einfach den objektnamen 2mal reinschreiben. einmal als objekt und einmal als string in anführungszeichen: BlitzBasic: [AUSKLAPPEN] create_mesh(cube,"cube")
|
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin mir jetzt nicht ganz sicher ob du den Tipp von Xeres schonmal genauer verfolgt hast?
NameEntity ![]() EntityName ![]() Also damit würds auf jeden Fall gehn und es wäre kein Mehraufwand mit Types nötig. Was natürlich nicht heißt dass Types schlecht wären, aber wenn du sie aktuell nicht brauchst würd ich sie deswegen auch nicht einführen. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
xeres hat meine frage ja schon beantwortet.
ich dachte nur, dass ich mir was klitzikleines sparen könnte. z.b.: BlitzBasic: [AUSKLAPPEN] cube=CreateCube() aber das funktioniert nicht, weil in blitzbasic keine reflection (siehe xeres) möglich ist. deshalb mach ich es so: BlitzBasic: [AUSKLAPPEN] cube=CreateCube() |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ok, das heißt dein Problem wäre ja gelöst... aber wenn das deine ganze create_mesh-Funktion ist dann hab ich so das lästige Gefühl dass du noch viel mehr Probleme kriegen wirst? Wozu in einem Cube ein Surface erstellen? Und wenn du eine Datei öffnest und dann nix weiter machst, müsste "stream" eine globale Variable sein... was wieder Probleme macht sobald du 2 Meshes hast, da das zuletzt geladene deine globale Var überschreibt. Vielleicht doch Types? Oder erklär mal was da noch so alles folgt... der Code so wie er da steht mag ja kompilierfähig sein, hat aber keinen für mich erkennbaren Sinn? mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
keine angst.
das ist die ganze funktion: BlitzBasic: [AUSKLAPPEN] Function create_mesh(m,n$) jetzt kommt sicherlich, ich sollte mehr platz dazwischen freilassen und ausführlicher schreiben, aber das ist mein schreibstil ![]() |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, sieht schon besser aus, ich bin ruhig ![]() aber ein letzter Klugschiss sei mir noch gestattet: bei der Zeile (und auch der mitn AddVertex) Code: [AUSKLAPPEN] AddTriangle s,mesh(ReadByte(stream)),mesh(ReadByte(stream)),mesh(ReadByte(stream))
Musst du bedenken dass das "letzte" ReadByte (also das für z) zuerst aus der Datei ausgelesen wird. Ist halt so ne BB-Eigenart über die schon der eine oder andere gestolpert is. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das hab ich auch schon gemerkt ![]() da hab ich sogar einen thread gemacht. hab ich dann aber selber rausgefunden. danke für deine hilfe ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group