Types und Fields, Frage
Übersicht

EvilSpiritBetreff: Types und Fields, Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe ein Type mit dem ich sehr viele (>2000) Cubes erstelle und verändere.
Nun hab ich das Problem, dass ich die Eigenschaften von nur einem einzigen ändern will. Mir sind aber nur die Befehle "last", "first", "next" und "before" bekannt. Gibt eine Möglichkeit nur eine ganz bestimmten Cube anzusprechen, zum Beispiel den mit der Nummer 1043? Kann mir jemand helfen |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
man kann dims und types kombinieren:
TYpe typename ...die ganzen fields End Type Dim cubes.typename(2000) For I=1 To 2000 cubes.typename(I)=New typename Next |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest ein Field nummer oder so dazufügen, das ganze mit For...Each...Next durchgehen und auf die Nummer prüfen. Allerdings sind bei so vielen Einträgen Dim-Felder schneller und einfacher. Mehr fällt mir dazu auf die schnelle jetzt auch nicht ein.
Übrigens: After, nicht Next ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
wiso? eine for-schleife muss ein next haben ![]() |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich verwende viele Types und ich muß sehr häufig bstimmte Type-Objekte ansprechen, lesen, setzen.
Ich mache das immer so (einfacher geht es wahrscheinlich nicht): Code: [AUSKLAPPEN] For EineUnit.UNIT = Each UNIT If EineUnit\UnitID = TempUnit_ID Then Exit Next Jeder Cube muß natürlich eine ID-Nummer haben und du mußt die ID des Cubes kennen, die du suchst. In meinem Fall sind es Einheiten eines Strategiespiels. |
||
@uzingLG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie wär's wenn...
du folgendes versuchst: Du sammelst die wichtigen Units in ein DIM - Feld und greifst auf die wichtigen über das Feld zu, sie sind ja dann noch immer über For Each Next verwendbar ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Kryan:
Zitat: Befehle "last", "first", "next" und "before"
In der Kombination mit diesem Zitat macht mein post wieder mehr Sinn ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@uzingLG hat Folgendes geschrieben: Wie wär's wenn...
du folgendes versuchst: Du sammelst die wichtigen Units in ein DIM - Feld und greifst auf die wichtigen über das Feld zu, sie sind ja dann noch immer über For Each Next verwendbar ![]() Ich weiß nicht was du meinst und was sollen die "wichtigen" Units sein ? Auf jeden Fall habe ich in meinem Spiel natürlich nicht bloß die UNITS Type als Speicher und Informationsquelle. Ich habe auch noch DIMs und BANKs für verschiedene, Spielfelder bezogene Daten. Auf welchem Feld eine Unit steht, steht auch in einer kleinen, schnellen, handlichen Bank. So erfahre ich eigentlich die ID der UNIT, die ich dann wegen Details mit FOR EACH Loop anspringen muß. Für sehr viele Teilaufgaben muß man aber unbedingt mit FOR EACH zu einer bestimmten UNIT springen. (Mein UNIT Type hat im Moment 179 Fields, viel mehr werden es aber nicht mehr sein.) |
||
@uzingLG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: und ich muß sehr häufig bstimmte Type-Objekte ansprechen Das habe ich gemeint.
Aber wenn das immer wieder andere Units sind, dann empfehle ich, die Felddaten in der Unit-Type festzulegen |
||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit dem Befehl "HANDLE (Variable[.Typename])" bekommt man für einen Typeeintrag eine eindeutige ID zurückgeliefert.
Über "Variable[.Typename]=OBJECT.Typename (Wert)" kann man dann diesen Eintrag direkt ansprechen. Diese Befehle sind in der Originalhilfe zwar nicht dokumentiert, funktionieren aber einwandfrei. @Omenation: So könntest du dir das langsame Durchwandern aller Typeeinträge sparen. Anstelle der von dir vergebenen ID schreibst du einfach nur das Handle des Types in deine Bank... |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BIG BUG hat Folgendes geschrieben: Mit dem Befehl "HANDLE (Variable[.Typename])" bekommt man für einen Typeeintrag eine eindeutige ID zurückgeliefert.
Über "Variable[.Typename]=OBJECT.Typename (Wert)" kann man dann diesen Eintrag direkt ansprechen. Diese Befehle sind in der Originalhilfe zwar nicht dokumentiert, funktionieren aber einwandfrei. Das Problem damit ist, daß ich es nicht wage, einen nicht dokumentierten Befehl zu benutzen. Es kann nämlich sein, daß bei dem nächsten Update der irgendwie entfernt oder geändert wird oder doch was damit nicht stimmt. Ich mache ein sehr großes Spiel und ich muß oft aus verschiedenen Gründen mit den Types so arbeiten und sie ansprechen. Wenn dann sich später heraustellen sollte, daß etwas mit diesem Befehl nicht stimmt, wäre es schwierig dann noch alles umzuwandeln. Ich setze auf die sichere, dokumentierte Lösung. Ich danke trotzdem für den Tip! |
||
HOT-BITGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hi !
Naja, solange du nicht updatest, kann ja nichts passieren, oder ? Toni |
||
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber das mit dem Handle würde ja nur was bringen wenn man weiß welche id das anzusprechende Objekt hat.
Aber häufig prüfe ich per for each next alle objekte auf einen bestimmten Sachverhalt und mit all denen passiert dann etwas. Da würde einem Handle und Bank nichts bringen. Einen Fall dass ich ein Objekt mit einer bestimmten Id ansprechen will ist ziemlich selten denn dazu muss man die ID erst irgendwie rauskriegen. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group