jedes objekt ansprechen?
Übersicht

gigiBetreff: jedes objekt ansprechen? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie mach ich das?
es soll gezaubert werden und da will ich eine interaktion mit vielen objekten machen.Wie das? ich muss ja jedes objekt in einem bestimmten radius ansprechen. danke im voraus! ![]() |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Types
Durchgehen mit For Each und schauen ob sie in Reichweite sind. Alternativ kannst du auch versuchen sie mit einer Kollisionserkennung zu "erwischen" |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
gigiBetreff: zauber |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also wenn man durch die flure geht stehen überall kleine sachen.(z.b.blumentöpfe) wenn ich nun vom anderen ende des gangs den zauber ausführe darf das ja nicht wirken.
also der code mal so grob: if entityabstand zu irgentwas<5 and keyhit(zaubertaste)then objekt=(das zuorden checke ich,bloss nicht wie objekt bestimmen) irgendwas passiert endif lösung gesucht![/code] |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du musst das IF distance < X für alle objekte machen.
Das heisst alle objekte die von interesse sind müssen eine Type Instanze erzeugt haben so das du durch alle types durchgehen kannst. Es gibt keine andere Möglichkeit als alle Objekte zu denen überhaupt distanz checks durchgeführt werden müssen in eine Menge zu stecken wo du nachsehen kannst und in Blitz baut man diese Mengen mit Types. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
gigiBetreff: Beispiel? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hast du ein beispiel ?
ich weiß nicht wo ich da anfangen soll. |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nun ja, für jede Entity zu der du die Distanz testen willst, erzeugst du beim Laden auch direkt einen Type.
Am besten so, dass du den Handle des Types im Namen des Objektes speicherst (um ihn bei zerstörung des objektes einfach entfernen zu können) und umgekehrt den Handle zum Objekt im Type speicherst. Beispiel für zerstörbare Gegenstände: Code: [AUSKLAPPEN] Type TDestructable field object% End Type function CreateDestructable(destructable%) local result.TDestructable = new TDestructable if object.TDestructable(EntityName(destructable)) <> null delete object.TDestructable(EntityName(destructable)) endif result\object = object NameEntity object,handle(result) end function function DeleteDestructable(destructable%) delete object.TDestructable(destructable) freeentity destructable end function Function DestroyInRange(pivotEntity%,distance#) local test.TDestructable for test = each TDestructable if EntityDistance(pivotEntity,test\object) <= distance DestroyObject(test\object) endif next end function DestroyObject wäre dann einfach deine Funktion die die animation und soundeffekte beim zerstören ausführt. Create und Delete sind dazu da zum zu einer Entity ein Destructable zu erzeugen bzw. um die entity und das destructable zu entfernen. Natürlich könntest du für DestroyObject da auch den Type übergeben und in diesem weitere Informationen speichern. Das wäre auf jeden fall das prinzipielle vorgehen. weitere informationen zu Types und ihrer nutzung findest du sonst in tutorials hier und auf der robsite. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
gigiBetreff: ändertes was wenn... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn ich ur die eigenschaften ändern will? | ||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann nenn die funktion DestroyObject(test\object) eben AndereEigenschaft(test\object,irgent,welche,eigenschaften$) | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group