Probleme mit Types
Übersicht
BlitzBasic
Allgemein|
|
ApprauuuuBetreff: Probleme mit Types |
Antworten mit Zitat |
|---|---|---|
|
Hallo!
Ich arbeite grad an nem Mapeditor und hänge grad an der Verwendung mit Tyües fest! Was ich haben will: Man hat auf der linken Seite alle Maps stehen. Die Maps können beliebig viele "Untermaps" besitzen; das heißt, in einer Map namens Haus können noch je in die 3 verschiedene Geschosse unterteilt werden und jede Geschossmap hat noch die einzelnen Räume als Untermap (ich weiß nicht wer von euch jemals den RPG-maker benutzt hat.... Aber so wie es mit der Mapeinteilung da ist will ich es auch machen) Ich dachte ich könnte das alles am besten mit Types lösen... Nur stehe ich bei den Untermaps mit einer beliebigen ANzahl zimelich auf dem Schlauch, vor allem wenn diese ebenfalls Untermaps haben sollen Bitte um eine Löseung + Erklärung Das wär mal echt klasse |
||
|
Arbeitsstand:
Umprogrammierung von LOL³Warriors und LOL³Fighters in Bmax... LOL³Fighters wird spielerisch noch mal ordentlich aufpoliert, um es Ligatauglich zu machen (zumindest für private Funligen von mir ^^) |
||
|
|
Hip Teen |
Antworten mit Zitat |
|---|---|---|
| Nun, du könntest die Eigenschaft "Parentmap" einbauen. Ist das Null, ist es die oberste Schicht von ner Map (und wird links angezeigt). Hat es die Eigenschaft, wird es der Parentmap zugeordnet. | ||
|
|
Apprauuuu |
Antworten mit Zitat |
|---|---|---|
|
Ok!
Hab aber jetzt ein paar probs mit Types, da ich sie noch nie so benutzt habe (min Beispiel bezieht sich jetzt auf ereignisse, welche verschiedene werte haben können, die beliebig oft vertreten sein können [z.b. soll das erste Ereignis einen portwert und 2 werte für die textbpox haben (falls der npc im rpg 2 mal was sagen soll)]). Mein Code jetzt: BlitzBasic: [AUSKLAPPEN] Type ereignis Nun will ich, dass unten in der Schleife die 2 Eigenschfaten der Ereignisse geprintet werden und die jeweiligen portwerte und textboxdialoge! Wenn ich nicht: For ereignis\box = Each box Print ereignis\box\inhalt Next drin habe, dann printet der nur den zuletzt veränderten Wert (also bei dem obigen Ereignis "Text 222" und nicht beide (also "Text 111" und "Text 222")... Nun habe ich den Textboxtype auch in eine Schleife gesteckt, sodass der alles durchläuft, sodass das Prog. Beim oberen Ereignis die oberen beiden Textwerte und bei dem zweiten Ereignis nur den "Ahhhh"-wert ausgeben soll.... Nur gibt der jetzt Immer alle überhaupt vorhandenen Texte aus... Kann mir jemand sagen wo da mein Verständnisproblem bei der Sache liegt ?? (ich hoffe man konnte anhand meiner komisch beschreibeen Erklärung irgdnwas kapieren o_O) |
||
|
Arbeitsstand:
Umprogrammierung von LOL³Warriors und LOL³Fighters in Bmax... LOL³Fighters wird spielerisch noch mal ordentlich aufpoliert, um es Ligatauglich zu machen (zumindest für private Funligen von mir ^^) |
||
CodeMaster |
Antworten mit Zitat |
|
|---|---|---|
|
Ja. Types sind globale Strukturen und keinesfalls mit eigenständigen Klassen oder Objekten zu verwechseln. Leider.
Das heißt, in dem gesamten Programm gibt es nur eine Liste namens "box". In deinem Ereignis-Type hast du lediglich eine Instanz eines box-Elements gespeichert. Abhilfe kannst du schaffen, indem du in das Type eine Bank lädst, in der du jeweils alle Handles der unterstellten Box-Elemente speicherst. Ist allerdings mit etwas Programmieraufwand verbunden. Mal sehen, vielleicht progge ich in den nächsten Minuten mal ein Beispielcode. [edit] Hier mal ein Beispiel zur Grundidee:BlitzBasic: [AUSKLAPPEN] Type TObjectADie ObjektB-Löschenfunktion hab ich noch nicht, da muss man einige Bytes in der Bank hin und her verschieben. Hatte ich keine Lust mehr zu |
||
|
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
||
|
|
Apprauuuu |
Antworten mit Zitat |
|---|---|---|
|
Danke für die ausführliche Hilfe hab vorher noch nie was von banks gehört und das jetzt hinbekommen |
||
|
Arbeitsstand:
Umprogrammierung von LOL³Warriors und LOL³Fighters in Bmax... LOL³Fighters wird spielerisch noch mal ordentlich aufpoliert, um es Ligatauglich zu machen (zumindest für private Funligen von mir ^^) |
||
CodeMaster |
Antworten mit Zitat |
|
|---|---|---|
|
Sagen wirs mal so: Wenn dein Projekt nicht *unbedingt* verschachtelte Types haben *muss*, kannst du es ja auch anders lösen. Denn dieser Aufwand lohnt sich für kleinere Sachen eigentlich nicht.
Ne Bank ist im Übrigen nix anderes als eine Liste von Zahlen, genauer gesagt von Bytes. Mal ein Beispiel: Du erstellst dir eine Bank mit 100 Bytes:BlitzBasic: [AUSKLAPPEN] Bank = CreateBank(100)Um jetzt in die Bank eine Integer-Variable zu speichern, brauchst du zuerst eine Position. Diese ist, da die Bank noch leer ist, 0. Eine Integer-Variable verbraucht vier Bytes, das heißt, wenn du die Variable mittelsBlitzBasic: [AUSKLAPPEN] PokeInt Bank, 0, Variable%in die Bank legst, sind die Bytes 0, 1, 2 und 3 für diese Variable belegt. Die nächste Integer-Variable könntest du also erst ab Position 4 speichern (es ginge auch jede andere Position, aber damit würdest du eventuell die erste Integervariable zerstören). Genauso funktioniert auch das Lesen aus einer Bank:BlitzBasic: [AUSKLAPPEN] Variable% = PeekInt(Bank, 0)In Peekint werden ab der Position 0 also die nächsten vier Bytes eingelesen und in Variable% als eine Integer-Zahl gespeichert. Weiteres darüber erfährst du in derBlitzBase.[/syntax] |
||
|
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
||
|
|
Apprauuuu |
Antworten mit Zitat |
|---|---|---|
|
ARGHH!
Ich wollte jetzt auch in B+ in meinem Mapeditor mit Hilfe von Banks was machen, nur kommt da immernen Fehler: "Bank cannot be Resized" Um zu gucken, ob ich nicht irgendeinen Müll gebaut hab, hab ich mal einfach den Code von oben in B+ reinkopoiert und sogar da kommt nen Fehler, obwohl in B3d alles klapppt -.- (kann es daran liegen, dass ich von b+ nur die demo hab oder was soll das -.-??) Kann mir da vielelicht jemand helfen?? |
||
|
Arbeitsstand:
Umprogrammierung von LOL³Warriors und LOL³Fighters in Bmax... LOL³Fighters wird spielerisch noch mal ordentlich aufpoliert, um es Ligatauglich zu machen (zumindest für private Funligen von mir ^^) |
||
Übersicht
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group
