type, tlist , handle und object
Übersicht

![]() |
MeoqanBetreff: type, tlist , handle und object |
![]() Antworten mit Zitat ![]() |
---|---|---|
Morgen!
ich such in blitzmax folgendes was in blitz3d so aus schaut: jetzt speziell "id=Handle(beispiel)" und "beispiel = Object.beispiel(id)" ich google schon zeit stunden finde aber nicht exakt das was ich suche. Code: [AUSKLAPPEN] Type beispiel Field value$ End Type Global beispiel.beispiel beispiel = New beispiel beispiel\value="my" beispiel = New beispiel beispiel\value="world" beispiel = New beispiel beispiel\value="hello" For beispiel = Each beispiel If "world" = beispiel\value Then id=Handle(beispiel) Next beispiel = Object.beispiel(id) Print beispiel\value WaitKey() in blitzmax bin ich bereits soweit: Code: [AUSKLAPPEN] Type beispiel Field value:String End Type Global beispielList:TList = CreateList() Local Newbeispiel:beispiel Newbeispiel = New beispiel Newbeispiel.value = "my" ListAddLast beispielList, Newbeispiel Newbeispiel = New beispiel Newbeispiel.value = "world" ListAddLast beispielList, Newbeispiel Newbeispiel = New beispiel Newbeispiel.value = "hello" ListAddLast beispielList, Newbeispiel For b:beispiel = EachIn beispielList If "world" = b.value Then ??? = ?????(???) Next ??? = ????????????? Print ??.value danke schonmal im voraus! und gruß an Tobi! |
||
meine codes sind die essenz des bössen. nicht du veränderst meine codes sondern meine codes verändern dich! |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kein Wunder das du das nicht findest, das gibt es bei BMax nämlich nicht, da man es nicht braucht. Darf man fragen wozu du es denn überhaupt brauchen würdest?
Und die codes oben sind noch nicht wirklich identisch, dazu müsstest du das Objekt noch der Liste hinzufügen: Code: [AUSKLAPPEN] Type beispiel
Field value:String End Type Global beispielList:TList = CreateList() Local Newbeispiel:beispiel Newbeispiel = New beispiel beispielList.addlast(Newbeispiel) Newbeispiel.value = "my" bzw. würde man das total Objektorientiert wohl eher so schreiben: Code: [AUSKLAPPEN] Type Beispiel
Global list:TList = New TList Field value:String Field link:TLink Method New() Self.link = beispiel.list.addlast(Self) End Method Method setValue(value:String) Self.value = value End Method Method getValue:String() Return Self.value End Method Method remove() RemoveLink(Self.link) End method End Type Local newbeispiel:Beispiel = New Beispiel newbeispiel.setValue("my") |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Meoqan |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich bin dabei ein spiel zu proggen und das ganze wow like... um rechner leistung vom server zu sparen und keine 3d welt zu laden habe ich für die bots die gültigen lauf bereiche in text form gespeichert.
leider haben die maps mehr als 15 000 einträge und das "for g:grind = eachin grindList" prinzip verbraucht sehr viel leistung. die einzelnen punkte untereinander sind verbunden... mit der technik von b3d müsste ich kein einziges mal eine for schleife anfangen... ich hoffe ich hab das verständlich erklärt :/ ![]() |
||
meine codes sind die essenz des bössen. nicht du veränderst meine codes sondern meine codes verändern dich! |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie genau sieht denn diese Verbindung aus? Meinst du mit Einträgen auf der Map die Tiles? Also 15000 Tiles pro map? Wenn ja, dann kannst du doch über ein Array sowieso direkt drauf zugreifen, oder?
Ansonsten, wenn es nur ein loses Netzwerk von Knoten ist, dann kannst du doch die Nachbarknoten pro Knoten speichern, und von dort aus direkt zugreifen. Oder erklär einfach mal ausführlicher deine Datenstruktur. (ich geh jetzt schlafen, werde aber später mal schauen ob ich dir helfen kann) |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Meoqan |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() so sieht die text map aus wenn man diese lädt und grafisch anzeigt... jeder punkt kennt seinen nachbar und anderstrum... also von oben(d1), oben rechts(d2), rechts(d3), unten rechts(d4), unten(d5),...usw um es mal bildlich vorzutellen hat ein punkt(ID) folgende daten: d8,d1,d2 d7,ID,d3 d6,d5,d4 |
||
meine codes sind die essenz des bössen. nicht du veränderst meine codes sondern meine codes verändern dich! |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Müsste deine Struktur dann nicht einfach so aussehen?:
Code: [AUSKLAPPEN] Type TPunkt Field d:TPunkt[8] 'array von 0-7 für die Nachbarn, angefangen mit oben(0), oben rechts(1), rechts(2) usw... End Type |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Tobchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke!
Gruß auch an dich! |
||
Tobchen - die Welt von Tobi!
|
![]() |
Meoqan |
![]() Antworten mit Zitat ![]() |
---|---|---|
so... nach einwenig rumprobieren hab ich genu das was ich brauche:
Code: [AUSKLAPPEN] Type Tbeispiel Field value:String Field nachbar:Tbeispiel End Type Global TbeispielList:TList = CreateList() Local NewTbeispiel:Tbeispiel NewTbeispiel = New Tbeispiel ListAddLast TbeispielList, NewTbeispiel NewTbeispiel.value = "my" NewTbeispiel = New Tbeispiel ListAddLast TbeispielList, NewTbeispiel NewTbeispiel.value = "world" For b:Tbeispiel = EachIn TbeispielList If b.value = "my" Then NewTbeispiel.nachbar = b Next NewTbeispiel = New Tbeispiel ListAddLast TbeispielList, NewTbeispiel NewTbeispiel.value = "hello" For b:Tbeispiel = EachIn TbeispielList If b.value = "world" Then NewTbeispiel.nachbar = b Next For b:Tbeispiel = EachIn TbeispielList If "hello" = b.value Then bei:Tbeispiel = b.nachbar Next bei = bei.nachbar Print bei.value thx @ Firstdeathmaker |
||
meine codes sind die essenz des bössen. nicht du veränderst meine codes sondern meine codes verändern dich! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group