Arry-Index rausfinden
Übersicht

DonnerBetreff: Arry-Index rausfinden |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute!
Ich hab mal ne einfache frage: Wenn ich z.B. Meshs in nem array gespeichert hab und dann auf kollision mit dem Spieler überprüfe und ich mit entitycollided geprüft habe, welches objekt das ist, dann liefert mir das das Objekt zurück! Wie kann ich jetzt aber rausfinden welche Index-Nummer das Objekt hat? Bsp: Code: [AUSKLAPPEN] dim Mesh(10)
mesh(1) = Loadmesh("MESHPFAD1") mesh(2) = Loadmesh("MESHPFAD2") mesh(3) = Loadmesh("MESHPFAD3") mesh(4) = Loadmesh("MESHPFAD4") mesh(5) = Loadmesh("MESHPFAD5") mesh(6) = Loadmesh("MESHPFAD6") mesh(7) = Loadmesh("MESHPFAD7") mesh(8) = Loadmesh("MESHPFAD8") mesh(9) = Loadmesh("MESHPFAD9") mesh(10) = Loadmesh("MESHPFAD10") (...) cmesh = entitycollidet(cam, 2) Und ich jetzt z.B. das collidierende Objekt skalieren will, brauch ich ja die Index-Nummer Code: [AUSKLAPPEN] scaleentity mesh(WIE FINDE ICH DIE NR DES KOLLIDIERTEN OBJEKTS RAUS?),2,2,2
Ich hoffe ihr habt meine Frage verstanden (Was vielleicht nich grad einfach is!) Donner |
||
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dein array in einer schleife durchgehen und jedes mesh einzeln prüfen? | ||
Donner |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Meinst du so?
Code: [AUSKLAPPEN] for meshnummer = 1 to 10
if cmesh = mesh(meshnummer) then exit next |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Donner,
es gibt eine wesentlich efektivere variante die aber etwas komplexer zu bedienen ist. und zwar wie folgt: man mache sich einen Type für die Entiies Code: [AUSKLAPPEN] Type entity field mesh field name$ field eigenschaft$ end type bei jedem laden legt man einen neuen Type an Code: [AUSKLAPPEN] a.entity = new entity a\mesh = loadmesh("meinmesh.b3d") a\name = "Hugo" a\eigentschaft = "voll gut" daraus macht man sich am besten eine funktion Code: [AUSKLAPPEN] function xloadMesh(filename$,name$,eigenschaft$) a.entity = new entity a\mesh = loadmesh(filename) a\name = name a\eigentschaft = eigenschaft return a\mesh end function und immer wenn man ein mesh läd dann benennt man das mesh wie das Handle des Types Code: [AUSKLAPPEN] function xloadMesh(filename$,name$,eigenschaft$) a.entity = new entity a\mesh = loadmesh(filename) a\name = name a\eigentschaft = eigenschaft nameentity(a\mesh,handle(a)) return a\mesh end function wenn man jetzt ne Kollision hatte dann nimmt man den Namen(ist ja das Handle) und holt sich damit den entsprechenden Type Code: [AUSKLAPPEN] collisionsMesh = collisionEntity(entity,index) a.entity = object.entity(entityName(collisionsMesh)) print "Kollision mit "+a\name print "seine Eigenschaft "+a\eigenschaft so kannst du direkt auf die Eigenshaften eines Entities zurückgreifen ohne durch eine lange Liste von Objekten laufen zu müssen P.S.: den Code hab ich nur aus dem Gedächnis geschrieben .. kann also Fehler enthalten. zudem sind die Befehle "handle" und "Object" eigentlich undokumentierte Befehle .. aber ich benutze sie selber sehr häufig und hatte nie Probleme (nur zur Info) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group