Ich habe mich heute mal hingesetzt und hab ein kleines Level programmiert. Man spielt einen König, der mit Doppelgraben ein Menü öffnet, welches 3 Untermenüs enthält. Klickt man auf eines der Untermenüs, erscheinen Befehle, die man einem normalen Clonk geben kann, der von einem Scriptspieler gesteuert wird. Soweit, so gut. Nun habe ich an sich alles fertig, bietet sich nur ein Problem: GetX() und GetY() erzählen Schwachsinn. Die Zahlen, die dabei herauskommen, sind komplett wirr und nicht zu gebrauchen. Kann einer helfen? Danke im Vorraus lg Rhokan
Mega Hazard Staatsrat
Alter : 31 Ort : Brunswiek *helllau* Anmeldedatum : 24.01.08
Thema: Re: GetX() und GetY() Fr Jan 02, 2009 2:22 pm
GetX und GetY geben dir die absoluten Koordinaten auf der Karte raus, gemessen von der oberen linken Ecke. Diese Zahlen sind mit MapZoom multipluizert.
trike994 Konteradmiral
Alter : 30 Anmeldedatum : 10.12.08
Thema: Re: GetX() und GetY() Fr Jan 02, 2009 2:40 pm
heißt das das man immer die genauen kordinaten von der linkeoberenecke kriegt oder die noch divideirn muss?
Mega Hazard Staatsrat
Alter : 31 Ort : Brunswiek *helllau* Anmeldedatum : 24.01.08
Thema: Re: GetX() und GetY() Fr Jan 02, 2009 3:18 pm
Die genauen.
trike994 Konteradmiral
Alter : 30 Anmeldedatum : 10.12.08
Thema: Re: GetX() und GetY() Fr Jan 02, 2009 3:27 pm
acha, thx
Rhokan Hauptman
Anmeldedatum : 02.10.08
Thema: Re: GetX() und GetY() Mo Jan 05, 2009 3:07 pm
Soviel weiß ich auch, trotzdem danke.
Aber scheinbar liefert es garkeine Koordinaten... Das ist einfach nur krank.
Clonkzerhechsler Oberst
Alter : 28 Ort : Apenburg Anmeldedatum : 29.12.08
Thema: Re: GetX() und GetY() Mo Jan 05, 2009 4:18 pm
Rhokan schrieb:
Soviel weiß ich auch, trotzdem danke.
Aber scheinbar liefert es garkeine Koordinaten... Das ist einfach nur krank.
xD
Mega Hazard Staatsrat
Alter : 31 Ort : Brunswiek *helllau* Anmeldedatum : 24.01.08
Thema: Re: GetX() und GetY() Mo Jan 05, 2009 4:48 pm
Du musst aber auch bei GetX() in nichtlokalen Scripten das Objekt angeben, wie "Message("xd,0,"GetX(FindObject(CLNK)));"
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: GetX() und GetY() Mo Jan 05, 2009 4:53 pm
was für wirre zahlen kriegst du denn geliefert?
Rhokan Hauptman
Anmeldedatum : 02.10.08
Thema: Re: GetX() und GetY() Mo Jan 05, 2009 8:00 pm
@ Mega Hazard Das weiß ich auch schon wohl, danke.
Und die Flints erscheinen ziemlich oben links in der Bildschirmecke, aber nicht komplett auf 0, 0. Das untere Befehl ist eine TimerCall-Funktion dessen Timer auf 1 steht. Egal wie man den Clonk bewegt, die Flints ändern ihren Ort nicht.
Gut, in dem Level gibt es einen Clonk und einen König, der König wird vom Spieler gesteuert. Ob GetX() und GetY() auch bei dem so einen Quatsch geben? Ersetzen wir die erste Scriptzeile durch: var pObj = FindObject(KING);
Resultat: Die Flints erscheinen etwas rechts und etwas unten vom Clonk. Schätzungsweise 100 Pixel nach rechts und nach unten. Egal wie er sich bewegt, sie folgen, aber eben nicht direkt dem König, sondern dem Nichts rechts unter ihm. Seltsam... Aber das ist so.
Mega Hazard Staatsrat
Alter : 31 Ort : Brunswiek *helllau* Anmeldedatum : 24.01.08
Thema: Re: GetX() und GetY() Mo Jan 05, 2009 9:16 pm
Zitat :
Das untere Befehl ist eine TimerCall-Funktion dessen Timer auf 1 steht. Egal wie man den Clonk bewegt, die Flints ändern ihren Ort nicht.
Nunja, das ist kein Fehler. Du hast in der ersten Funktione eine Variable benutzt, die nur für die Funktion gilt. Bei der Timerfunktion willst du also eine Variable aufrufen, die es dort nicht gibt. Schreibe statt "var" einfach "local".
Simsi Staatssekretär
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 30.03.08
Thema: Re: GetX() und GetY() Mo Jan 05, 2009 10:30 pm
kann man locals auch in funktionen deklarieren?
Mega Hazard Staatsrat
Alter : 31 Ort : Brunswiek *helllau* Anmeldedatum : 24.01.08
Thema: Re: GetX() und GetY() Mo Jan 05, 2009 11:50 pm
Afaik schon. Mace hatte das glaubich immer so gemacht. *HazardShips-Fan*
Rhokan Hauptman
Anmeldedatum : 02.10.08
Thema: Re: GetX() und GetY() Di Jan 06, 2009 2:06 pm
äh, sry, das ist eigentlich schon klar, kam jetzt vom Schnellschreiben. dann eben local ^^ Jedenfalls besteht der Fehler... Trotzdem danke für die bisherigen Bemühungen