jedes objekt ansprechen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

gigi

Betreff: jedes objekt ansprechen?

BeitragMi, März 14, 2007 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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! Very Happy
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185
 

Dreamora

BeitragMi, März 14, 2007 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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.
 

gigi

Betreff: zauber

BeitragMi, März 14, 2007 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, März 14, 2007 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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.
 

gigi

Betreff: Beispiel?

BeitragMi, März 14, 2007 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, März 14, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
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.
 

gigi

Betreff: ändertes was wenn...

BeitragMi, März 14, 2007 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich ur die eigenschaften ändern will?
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

Silver_Knee

BeitragMi, März 14, 2007 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
dann nenn die funktion DestroyObject(test\object) eben AndereEigenschaft(test\object,irgent,welche,eigenschaften$)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group