Vererbung von Strukturen, Überladen von Prozeduren?
Verfasst: 05.07.2008 01:53
Ja, ich hab auch gemerkt, wenn ich die Sprite2D-Nummer als Sprite3D-Nummer benutze, dann ist bei mir nach 3 Sprites Schluss.
Schätze mal, der Speicher ist dann voll
Werde ich wohl nicht drum herum kommen, doch zwei IDs zu verwenden.
Ich dachte auch an eine "Zwischentabelle" die ich mir selbst anlege.
Zum Beispiel:
Sprite3DID
Sprite2DID
Sprite2D-Dateiname
Sprite2D-Transparenz
Denn aus dem gleichen Bild wird man eher sehr selten verschiedene Sprites mit unterschiedlichen Transparenzen erzeugen. Denn die hängen ja vom Bildinhalt ab.
Ich müsste dann in mehreren LinkedLists meine Objekte zusammenbasteln und das kann dann wieder langsam sein.
Also wenn mein Objekt weitere Informationen beinhalten soll,
müsste ich die Grunddaten aus meiner Liste zum Beispiel mit der Sprite3DID zusammen suchen.
Und das für jedes meiner Objekte. So suche ich dann ständig in zwei verschiedenen Listen.
Hierbei stellt sich mir auch die Frage, ob es eine einfachere schnellere Möglichkeit gibt, Eigenschaften zu vererben.
Was ist, wenn ich einfache 2D-Objekte haben möchte, und diese von mir aus nur Position und Ausdehnung haben. Und weitere 2D-Objekte, die spezieller sind ... aber die ersten Strukturwerte ebenfalls beinhalten sollen.
>>>>>>>>>>>>
Kann ich eine LinkedList mit mehreren Sturkturen machen?
Und in der LinkedList überprüfen, welche Struktur mein Objekt hat?
Als Beipiel:
Mein Problem ist auch, dass ich unter Umständen mein Objekt noch nicht richtig kenne. Und ihm vielleicht später weitere Eigenschaften zuweisen möchte.
Da wären wir wieder beim Thema LinkedLists in LinkedLists.
Könnte ja ein paar Strings in mein Objekt packen und diese beinhalten dann weitere Informationen über mein Objekt.
>>>>>>>>>>
Eine Möglichkeit wäre auch, dass man zwei LinkedLists nach einander für jede Struktur eine durchläuft. Und solle ein Objekt erweitert werden, fügt man ein neues der zweiten Struktur zu und löscht es aus der ersten.
Das macht die Sache aber auch etwas kompliziert, wenn ich mehrere verschiedene Objekttypen habe und diese zum Beispiel immer x,y besitzen und wenn ich eine Methode auf mein Objekt anwenden möchte, muss meine Prozedur ja immer neu geschrieben werden, weil die Struktur jedes mal neu ist.
Kann ich in PureBasic Methoden überladen?
In TurboPascal war das seltsam, man selbst konnte solche Befehle nicht basteln, aber zum Beispiel der Wirte()-Befehl konnte folgendes:
Write(0,"Hallo") hat in eine Datei mit Nummer "0" - "Hallo" geschrieben
Write(0) hat "0" auf dem Bildschirm ausgegeben
Wirte("Hallo") hat "Hallo" auf dem Bildschirm ausgegeben
Genauso möchte ich manchmal auch
ErstelleBild("Bildname von Festplatte")
ErstelleBild(30,30)
Das mit den Flags ist schon ne gute Idee, dass ich ""-Strings benutzen muss, um eine Eingabe zu umgehen ... das ist öde.
Und für jede neue Möglichkeit, die es geben kann, einen neuen Prozedurnamen zu erfinden, obwohl die Prozedur intern ja vollkommen gleich ist, wäre auch bescheuert.

Link zu den LinkedLists in LinkedLists
http://www.purebasic.fr/german/viewtopi ... inkedlists
Ich nehme weiterhin meine Strings für dieses Problem
Schätze mal, der Speicher ist dann voll

Werde ich wohl nicht drum herum kommen, doch zwei IDs zu verwenden.
Ich dachte auch an eine "Zwischentabelle" die ich mir selbst anlege.
Zum Beispiel:
Sprite3DID
Sprite2DID
Sprite2D-Dateiname
Sprite2D-Transparenz
Denn aus dem gleichen Bild wird man eher sehr selten verschiedene Sprites mit unterschiedlichen Transparenzen erzeugen. Denn die hängen ja vom Bildinhalt ab.
Ich müsste dann in mehreren LinkedLists meine Objekte zusammenbasteln und das kann dann wieder langsam sein.
Also wenn mein Objekt weitere Informationen beinhalten soll,
müsste ich die Grunddaten aus meiner Liste zum Beispiel mit der Sprite3DID zusammen suchen.
Und das für jedes meiner Objekte. So suche ich dann ständig in zwei verschiedenen Listen.
Hierbei stellt sich mir auch die Frage, ob es eine einfachere schnellere Möglichkeit gibt, Eigenschaften zu vererben.
Was ist, wenn ich einfache 2D-Objekte haben möchte, und diese von mir aus nur Position und Ausdehnung haben. Und weitere 2D-Objekte, die spezieller sind ... aber die ersten Strukturwerte ebenfalls beinhalten sollen.
>>>>>>>>>>>>
Kann ich eine LinkedList mit mehreren Sturkturen machen?
Und in der LinkedList überprüfen, welche Struktur mein Objekt hat?
Als Beipiel:
Code: Alles auswählen
Structure Struk1
x.l
y.l
EndStructure
Structure Struk2
x.l
y.l
Name.s
Typ.l
EndStructure
NewList AlleOBJs.Struk*()
ForEach AlleOBJs()
AlleOBJs()\x
AlleOBJs()\y
If AlleOBJs()\Name ; irgendwas mit Offset ... vielleicht
EndIf
Next
Da wären wir wieder beim Thema LinkedLists in LinkedLists.
Könnte ja ein paar Strings in mein Objekt packen und diese beinhalten dann weitere Informationen über mein Objekt.
>>>>>>>>>>
Eine Möglichkeit wäre auch, dass man zwei LinkedLists nach einander für jede Struktur eine durchläuft. Und solle ein Objekt erweitert werden, fügt man ein neues der zweiten Struktur zu und löscht es aus der ersten.
Das macht die Sache aber auch etwas kompliziert, wenn ich mehrere verschiedene Objekttypen habe und diese zum Beispiel immer x,y besitzen und wenn ich eine Methode auf mein Objekt anwenden möchte, muss meine Prozedur ja immer neu geschrieben werden, weil die Struktur jedes mal neu ist.
Kann ich in PureBasic Methoden überladen?
In TurboPascal war das seltsam, man selbst konnte solche Befehle nicht basteln, aber zum Beispiel der Wirte()-Befehl konnte folgendes:
Write(0,"Hallo") hat in eine Datei mit Nummer "0" - "Hallo" geschrieben
Write(0) hat "0" auf dem Bildschirm ausgegeben
Wirte("Hallo") hat "Hallo" auf dem Bildschirm ausgegeben
Genauso möchte ich manchmal auch
ErstelleBild("Bildname von Festplatte")
ErstelleBild(30,30)
Das mit den Flags ist schon ne gute Idee, dass ich ""-Strings benutzen muss, um eine Eingabe zu umgehen ... das ist öde.
Und für jede neue Möglichkeit, die es geben kann, einen neuen Prozedurnamen zu erfinden, obwohl die Prozedur intern ja vollkommen gleich ist, wäre auch bescheuert.

Link zu den LinkedLists in LinkedLists
http://www.purebasic.fr/german/viewtopi ... inkedlists
Ich nehme weiterhin meine Strings für dieses Problem
