Thema: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 9:31 am
Ich habe mir mal überlegt, wie praktisch ein Aufzug wäre, der sich genau dann bewegt, sobald man ihn betritt(das habe ich schon). Nur weiß ich nicht, wie ich den dann nach oben, unten, oder so bekomme(schätze mal mit COM_DirUp oder so), nur wie kriege ich den beispielsweise nach 30 Pixeln wieder zum anhalten?
Vielleicht irgendwie mit Shedule Call, oder so? Bräuchte nur nen Ansatz zur Lösung, deshalb stehts in der Skripthilfe.
kevda Feldmarschall
Anmeldedatum : 08.05.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 11:17 am
Versuch einfach den Aufzug selbst zu schreiben bzw da was zu verändern. Wenn der Aufzug automatisch zu Clonks fährt die auf einen Aufzug warten, dann geht das bestimmt auch mit den 30px bewegen.
Ok hab mal nachgeschaut, geht sogar ganz einfach: SetMoveTo(iPos) im Aufzug aufrufen wobei iPos die globale Y-Position der Zielposition ist.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 1:17 pm
Und das geht vom Offset aus? Der Befehl ist gar nicht dokumentiert.
Mozart Kanzler
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 24.02.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 2:08 pm
SetMoveTo(iPos) im Aufzug aufrufen wobei iPos die globale Y-Position der Zielposition ist. global, also nix mit Offset un so. Da muss dann also ein Get(Y) plusminus 30pixel hin
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 2:41 pm
Ok, die Bewegung ist hierbei jedoch schon fließend oder? Ist eben ne fliegende Insel.
Also kann ich das auch verwenden, um die Insel leicht rauf und runter zu bewegen? So eine Art Schwebeeffekt?
Wo ich grade am Skripten bin: SetMoveTo wird nicht als Befehl angenommen.
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 30.03.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 2:47 pm
Das tut natürlich nur im Fahrstuhl weil in dem sein Script die funktion deklariert wurde. du musst die funktion aus dem fahrstuhl in deine insel reinkopieren.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 3:09 pm
Achso, auch noch, ok.
OT: Kann es sein, dass Clonk im Entwicklermodus häufiger hängen bleibt, wenn man viele Szens und Objekte hat?
EDIT: Jetzt brauchts noch RangeTop. Antworte gleich, obs geklappt hat. EDIT2: Es tut leider nicht. Errors:0 Warnings:0 Funktioniert es: Nein. Bleibt einfach in der Luft stehen.
Spoiler:
/*-- Fliegende Insel --*/
#strict 2
local RangeTop; // Obergrenze
protected func Initialize() { return(1); }
private func SetMoveTo(iPos) { var iDir = 0; if (iPos > GetY()) iDir = +3; if (iPos < GetY()) iDir = -3; SetCommand(this(),"MoveTo", 0, GetX(), Max(iPos, RangeTop) + iDir); SetYDir(0); return(1); }
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 4:19 pm
Nene, so geht das nicht, also ich würde die Insel einfach ne Float Animation geben und nur die Insel bewegen, halt so wie ein Fahrstuhl funktioniert.
imperatoerchen Brigadegeneral
Alter : 29 Ort : Ebersberg Anmeldedatum : 23.03.09
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 4:44 pm
Mach das doch mit SetCommand und als Kommando MoveTo.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 5:22 pm
kevda schrieb:
Nene, so geht das nicht, also ich würde die Insel einfach ne Float Animation geben und nur die Insel bewegen, halt so wie ein Fahrstuhl funktioniert.
Mit ner Float Animation hab ichs schon versucht. Dann müsste man aber noch Kommandos geben, und es schaffen, dass die irgendwie aufhören, oder so.
@imperatoerchen: Ja, SetCommand schaue ich mir mal an. MoveTo ist dann aber von den Koordinaten her vom Offset aus, oder? Und wie bestimmt man das Tempo?
imperatoerchen Brigadegeneral
Alter : 29 Ort : Ebersberg Anmeldedatum : 23.03.09
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 5:41 pm
Tempo weis ich nicht, aber es ist vom offset aus. Ich weis aber gar nicht ob SetCommand auch geht wenn das Objekt kein Clonk ist, musst du halt mal ausprobieren. Alternativ könntest du auch SetYDir() machen und nach ner Zeit wenn es 30 Pixel erreicht hat anhalten (Musst du halt ausprobieren wann das ist)
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 6:01 pm
Und wie definiert man bei SetYDir die Zeit?
imperatoerchen Brigadegeneral
Alter : 29 Ort : Ebersberg Anmeldedatum : 23.03.09
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 6:07 pm
Gar nicht, du musst zb SetYDir(5,0,1); Machen und messen wie lange er braucht um sich 30 pixel zu bewegen und nach dieser Zeit stoppen.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Aufzug nach 30 Pixel anhalten Mo Jul 06, 2009 6:21 pm
achso. na gut, ich probiers mal. Dann füge ich noch schalter ein, damit die Insel wieder runter geht, wenn sie schon oben ist. Aber noch ne Frage. Der Clonk muss sich auf der Insel befinden, damit sie hoch fährt. Aber der steht dann ja solange drauf, bis die Insel angekommen ist, und wenn der abspringt, fährt die insel ja wieter