Bei beiden sollte pKing an der selben stelle stehen bleiben. Aber anstatt stehen zu bleiben geht er immer von links nach rechts in einem Radius von 20px um den Punkt 1130 herum.
Was mache ich falsch?
In einem anderen Szen geht es nämlich.
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 1:11 am
Du könntest das, statt mit einem Kommando zu machen, auch anders lösen. Du sagst dem König dass er laufen soll und hältst ihn kurz darauf wieder an.
SetComDir setzt die Befehlsrichtung eines Objekts. Zuerst wird die auf Links gesetzt, der Clonk läuft nach links. Per ScheduleCall wird das zeitverzögert wieder zurückgesetzt, hier nach 10 Frames. Kannst ja rumprobieren, wieviele Frames es sein müssen, damits exakt hinkommt.
Dark Oberst
Alter : 29 Ort : Deutschland/Frankfurt Main Anmeldedatum : 07.07.10
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 1:36 am
egal wieviele Frames ich nehme der pKing bleibt net stehen. er gibt mir aber eine Fehlermeldung aus: ERROR: Undefined function: SetComDir
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 1:47 am
Ups. Das muss ScheduleCall(0, "SetComDir", 10, 0, COMD_None, pKing); heißen. Sonst sucht die Engine im Script vom König nach ner Engine-Funktion... :O
Dark Oberst
Alter : 29 Ort : Deutschland/Frankfurt Main Anmeldedatum : 07.07.10
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 2:01 am
Wird SetComDir() sonst zu wenige Parameter übergeben? Ich hatte mich schon gefragt, woher SetComDir beim 2. Mal wissen soll Auf wen Sie den Befehl anwenden soll.
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 2:37 am
Nunja, wenn eine Funktion in einem Objekt ausgeführt wird, ist bei nicht angegebenem Objekt meist das Aufrufende Objekt gemeint. zB funktioniert in einem Clonk GetX() genauso wie GetX(this). Der Fehler lag vielmehr darin, dass die Funktion dann im Clonk nach der Funktion SetComDir() sucht - die gibts da natürlich nicht, denn das ist eine Engine-Funktion, die global aufgerufen werden muss... ja, ein Nachteil von Call und Verwandte.
Dark Oberst
Alter : 29 Ort : Deutschland/Frankfurt Main Anmeldedatum : 07.07.10
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 1:24 pm
jetzt gibt er kein Warning mehr aus sondern läuft trotzem einfach weiter. er findet aber die Funktion was schonmal gut ist^^
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 2:49 pm
versuchs mal mit COMD_Down, oder pKing->ScheduleCall(0,"ControlDown",10);
Dark Oberst
Alter : 29 Ort : Deutschland/Frankfurt Main Anmeldedatum : 07.07.10
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 6:32 pm
funzt beides net
Gurkenglas Oberst
Anmeldedatum : 04.01.09
Thema: Re: Clonk bleibt nicht stehen Sa Jul 10, 2010 9:49 pm
Bei deinem ersten Ansatz hast du nicht die Pixelspalte 1130 angesteuert, sondern den Punkt (1130|0), der am oberen Bildschirmrand über dem eigentlichen Zielpunkt liegt, denn du hast den y-Parameter von SetCommand nicht angegeben, womit er 0 wurde. Das selbe Verhalten erzeugst du, wenn du mit der Maussteuerung einen Punkt so ansteuerst, dass der Clonk einen Überhang erklettern müsste, er versucht, der oberen Rand der Klippe zu erreichen und läuft deshalb unten hin und her . Wenn du den Clonk anhalten lassen willst, solltest du besser pKing->SetComDir(COMD_None()); nehmen.
Dark Oberst
Alter : 29 Ort : Deutschland/Frankfurt Main Anmeldedatum : 07.07.10
Thema: Re: Clonk bleibt nicht stehen So Jul 11, 2010 12:53 am
mit pKing->SetComDir(COMD_None()); gehts. Juhu. danke
Und wenn der nun eine Pixelspalte ansteuern soll. wie mache ich es dann?
muss ich dann z.B. so angeben: SetCommand(pKing, "MoveTo", 0, 1130, 100); ?