Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  FAQFAQ  SuchenSuchen  AnmeldenAnmelden  MitgliederMitglieder  LoginLogin  

Teilen | 
 

 Aus bestimmten Objekten das nahegelegenste ausschließen?

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 24
Anmeldedatum : 21.12.08

BeitragThema: Aus bestimmten Objekten das nahegelegenste ausschließen?   Sa Jun 26, 2010 6:16 pm

Es gibt 5 Hilfsobjekte im Szenario und ein Clonk soll das, das bei ihm am nächsten ist, ausschließen, und dann sich per Zufall zu einem der anderen Objekte bewegen. Wie stelle ich das am besten an?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   Sa Jun 26, 2010 7:38 pm

Du packst das Objekt, das du nicht haben willst, in Find_Exclude(), welches du per FindObject2() und Sort_Distance() rausbekommst.

var array = FindObjects(Find_ID(C4ID), Find_Exclude(FindObject2(Find_ID(C4ID), Sort_Distance())));
Und ein zufälliges raussuchen:
var obj = array[Random(GetLength(array))];
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 24
Anmeldedatum : 21.12.08

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   Sa Jun 26, 2010 7:44 pm

Allerdings ist es so, dass die ID des Objektes unbekannt ist. Also er führt diverse Aktionen aus und bewegt sich per Zufall dann zu Punkt 1,2,3 oder 4, und soll anschließend wieder auf einen Punkt zusteuern, allerdings nicht zu dem, in dessen Nähe er ist. Ist er bei Punkt 2, soll er z.b. nur zu Punkt 1,3 oder 4 gehen.
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   Sa Jun 26, 2010 7:48 pm

Hm. Hast du feste Objekte, oder sind die "Punkte" rein zufällig ein Flint, Goldklumpen etc?
Wenns feste Objekte sind, gib ihnen eindeutige IDs, oder sortier sie gleich in ein globales Array ein.

Dann genügt FindObjects(g_array, Find_Exclude(FindObject2(g_array, Sort_Distance()))) wenn das globale Array g_array heißt.
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 24
Anmeldedatum : 21.12.08

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   Sa Jun 26, 2010 8:06 pm

Also die Punkte sind Hilfsobjekte(spart Schreibarbeit Razz ) und sollen eben nicht erneut Endpunkt für eine Aktion sein, deshalb soll der Clonk nicht dem ihm nächsten Punkt auswählen um dort wieder seine Aktion auszuführen. Übrigens: Sort_Distance ist gar nicht in der Doku?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   Sa Jun 26, 2010 8:45 pm

Sort_Distance() steht in System.c4g/FindObject.c... besonders schlau wird man daraus aber nicht, da dort nur Engine-Konstanten zu irgendwas vermurkst werden. (*hust*, ja, mein Eindruck davon xD)

Was sind denn die Hilfsobjekte? Sind das wirklich nur Koordinaten, irgendwelche Zielobjekte oder feste Objekte? Oder was... werd daraus grad nicht wirklich schlau...
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 24
Anmeldedatum : 21.12.08

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   So Jun 27, 2010 5:45 pm

Also das sind unsichtbare Objekte mit IDs, schweben in der Luft und werden von meinem Clonk angesteuert. Er errechnet seine Richtung indem er seine Position minus der Position des Hilfsobjektes errechnet und bewegt sich so dann dahin.

Problem ist, dass es eine Aktion gibt, bei der er dann z.b. entweder zu Hilfsobjekt 1 oder Hilfsobjekt 2 geht. Da es aber möglich ist, dass er sich schon bereits bei einem der beiden Punkte aufhält(insgesamt gibts 5), möchte ich dann eben diese Punkte ausschließen, so dass er dann nicht zu Hilfsobjekt 1 geht, wenn er sich da befindet(sieht ja blöd aus wenn er 90 Frames damit verschwendet, bei dem Punkt zu bleiben, an dem er ist)
Nach oben Nach unten
Benutzerprofil anzeigen
Toastbrot
Kadett
Kadett
avatar

Männlich Anmeldedatum : 10.03.09

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   So Jun 27, 2010 6:19 pm

Dann kann der Clonk doch immer in einer Localen Variable das ZUletzt angesteuerte Hilfsobjekt speichern und solange ein ZUfälliges auswählen bis er ein anderes findet.
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   So Jun 27, 2010 7:09 pm

Ich glaub, du verstehst nicht worauf ich hinauswill. Wink
Haben diese feste IDs? Werden die IDs nicht anderweitig verwendet? Oder haben bestenfalls alle dieselbe ID?
Oder sinds nur irgendwelche Objekte (rumliegende Steine zB), die der Clonk je nach Situation aussucht?
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 24
Anmeldedatum : 21.12.08

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   So Jun 27, 2010 8:31 pm

Es sind unterschiedliche Objekte mit unterschiedlichen ID. Zb KI_L für den linken Hilfspunkt, KI_R für den rechten, usw
Mitte, oben und unten gibts auch noch. Sie werden nur vom KI-Clonk verwendet.
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   So Jun 27, 2010 9:09 pm

Na dann, globales Array oder Find_Or() verwenden. Also Find_Or(Find_ID(...), Find_ID(...), ...).

Array:
Find_Object2(array, Find_Exclude(FindObject2(array, Sort_Distance())), Sort_Random())
Damit bekommst du direkt ein zufälliges rausgewürfelt, das nicht das nächstbeste ist. Wenn du die betreffenden Objekte im Array "array" einsortiert hast. Fänd ich die schönste Methode. Find_Or() wird ziemlich hässlich.
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Aus bestimmten Objekten das nahegelegenste ausschließen?   

Nach oben Nach unten
 
Aus bestimmten Objekten das nahegelegenste ausschließen?
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Zugriffsbeschränkung eines bestimmten Users
» Beiträge eddieren in einem bestimmten Zeitraum
» Wie Beiträge in bestimmten Bereich nicht zählen ?
» Module nur auf bestimmten Seiten anzeigen.
» Auf ein bestimmten Beitrag springen

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Anfragen-
Gehe zu: