aus mehreren types den nahesten raussuchen
Übersicht

RaoudiBetreff: aus mehreren types den nahesten raussuchen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
versuche gerade einen ball zum ausweichen zu bringen
wenn er in die nähe eines steins kommt, soll er was bestimmtes machen. nun habe ich viele steine, er soll sich den aussuchen der ihm am nächsten is Code: [AUSKLAPPEN] For warb.ball = Each ball
If EntityDistance(sto\mesh,warb\mesh) < 5 ;bla EndIf Next so werden alle steine abgefragt, was natürlich nicht sein sollte |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so vieleicht?
Code: [AUSKLAPPEN] Near_Distance=1000 For warb.ball = Each ball If EntityDistance(sto\mesh,warb\mesh) < Near_Distance Near_Distance=EntityDistance(sto\mesh,warb\mesh) ;bla EndIf Next |
||
Programmers dont die. They gosub without return... |
Raoudi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Schnuff hat Folgendes geschrieben: so vieleicht?
Code: [AUSKLAPPEN] Near_Distance=1000 For warb.ball = Each ball If EntityDistance(sto\mesh,warb\mesh) < Near_Distance Near_Distance=EntityDistance(sto\mesh,warb\mesh) ;bla EndIf Next is das gleiche. wenn ich die distance variable dann zeichne wird sie mehrmals gezeichnet (in meinem beispiel), da mehrere steine angesprochen sind. von denen soll nur einer (der naheste) es geht nich direkt darum die nähe zu ermitteln |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Aber um die kürzeste Distanz zu bestimmen wirst Du zwangsläufig immer alle Distanzen überprüfen/ermitteln und miteinander vergleichen müssen. Amders ist das wohl kaum möglich. Allerdings kannst Du optimieren, indem Du zb eine Variable setzt wenn sich eines der Objekte bewegt. Dann überprüfst Du nur diese Variable und wenn sie gesetzt ist, ermittelst Du das Objekt mit der kürzesten Distanz, speicherst es Dir in einer anderen Variable und resetest die erste Variable. (Du könntest aber auch für beides die selbe Variable benutzen. Wenn diese Variable = null ist, führst Du Deine Funktion durch und speicherst in ihr das Objekt. Wenn sich etwas bewegt, setzt Du sie wieder auf Null).
Das alles macht natürlich nur Sinn, wenn sich die Objekte nicht durchweg in Bewegung befinden. ![]() Aber zur Bestimmung der kürzesten Distanz, bleibt Dir keine andere Möglichkeit, als alle Distanzen abzuarbeiten. |
||
Raoudi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ava hat Folgendes geschrieben: Aber um die kürzeste Distanz zu bestimmen wirst Du zwangsläufig immer alle Distanzen überprüfen/ermitteln und miteinander vergleichen müssen. Amders ist das wohl kaum möglich. Allerdings kannst Du optimieren, indem Du zb eine Variable setzt wenn sich eines der Objekte bewegt. Dann überprüfst Du nur diese Variable und wenn sie gesetzt ist, ermittelst Du das Objekt mit der kürzesten Distanz, speicherst es Dir in einer anderen Variable und resetest die erste Variable. (Du könntest aber auch für beides die selbe Variable benutzen. Wenn diese Variable = null ist, führst Du Deine Funktion durch und speicherst in ihr das Objekt. Wenn sich etwas bewegt, setzt Du sie wieder auf Null).
Das alles macht natürlich nur Sinn, wenn sich die Objekte nicht durchweg in Bewegung befinden. ![]() Aber zur Bestimmung der kürzesten Distanz, bleibt Dir keine andere Möglichkeit, als alle Distanzen abzuarbeiten. klingt einleuchtend, thx =] |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group