Kleinsten Distance Wert suchen.

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Chrise

Betreff: Kleinsten Distance Wert suchen.

BeitragFr, Nov 28, 2008 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich habe mal wieder eine Frage. Und zwar habe ich folgenden Teilcode:
Code: [AUSKLAPPEN]

For team.knight = Each knight
       choice_distance# = 1000
       For other.knight = Each knight
           If team\team <> other\team And other\mode <> 4 Then
              If choice_distance# > EntityDistance(other\pivot,team\pivot) Then
                 choice_distance# = EntityDistance(other\pivot,team\pivot)
                 choice_handle = other\pivot
              EndIf
           EndIf
       Next
Next


Der Sinn dieses Codes ist, unter einer Reihe von Type Einträgen das Objekt bzw. die Objektidentität herauszusuchen, welches zu dem Aktuellen zweiten Type Einträg am kürzesten entfernt ist.

Mir persönlich kommt diese Angelegenheit ziemlich umständlich bzw. schnell speicherlastig vor, deswegen frage ich jetzt einfach mal, ob es dafür eine geschicktere bzw. elegantere Lösung gibt.

Danke für eure Tipps und Vorschläge Smile

TimBo

BeitragFr, Nov 28, 2008 23:13
Antworten mit Zitat
Benutzer-Profile anzeigen
um einmal entity distanze zu sparen könnte man das so machen, ansonsten sieht der Code sauber aus.
Für mein nivaue

Code: [AUSKLAPPEN]
For team.knight = Each knight
       choice_distance# = 1000
       For other.knight = Each knight
           If team\team <> other\team And other\mode <> 4 Then
            tmp#=EntityDistance(other\pivot,team\pivot)
            If choice_distance# >tmp# Then
                 choice_distance# = tmp#
                 choice_handle = other\pivot
              EndIf
           EndIf
       Next
Next


Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Chrise

BeitragFr, Nov 28, 2008 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay wunderbar, danke für dein prüfendes Auge Smile
Dann probier ich das mal so aus.

Eine Frage hätte ich aber auch noch. Gibt es irgendwie den Wert "Unendlich" den man für die Distanz am Anfang einstellen kann? Sodass die Weiter nicht limitiert ist?

TimBo

BeitragFr, Nov 28, 2008 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
den gibt es allerdings,
mach einfach die größte Zahl hin , die in integer speichern kann.
Habe sie leider nicht im Kopf. Bei einem Byte müsste es 255 sein.

Oder mache Distanze=0
und mache if distanze = 0 nehme ersten abstand
das ist aber verschwendung denke ich.

Viele Grüße
TimBo

Edit:
Integer 4 Ganzzahl -2147483648 +2147483647
nehme die Zahl als "unendlich"

Quelle: Blitz Hilfe
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Chrise

BeitragFr, Nov 28, 2008 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
ah, wunderbar! Danke für deine schnelle und direkte Hilfe!

TimBo

BeitragFr, Nov 28, 2008 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
no problem
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group