An What³zUp?!s letzten Skript stimmt schon mal nicht, dass der y-Wert des Objekts zufällig verändert wird, dann in der letzten Zeile aber der x-Wert abgefragt wird. Du setzt den x-Wert in Zeile 4 auf 620, daher kann dieser nie 621 werden.
What³zUp?! wrote:gibt es nicht einen Befehl, dass wenn das Huhn eine bestimmte Position erreicht hat, ein anderer Befehl ausgeführt wird?
moveobj (instanz ; x ; y ; speed or time ;
wait)
Wenn du "wait" hintendran setzt, wird erst zur nächsten Skriptzeile gesprungen, wenn das Objekt sein Ziel erreicht hat. Functions könnten hierbei eine Ausnahme darstellen, das sei einfach auszutesten.
Außerdem eignen sich Functions hervorragend für Skripts, die wiederholt werden sollen. Dazu erstellst du eine ganz normale Cutscene, die du dann aber mit "function(runhuhn;Anzahl Wiederholungen oder "infinite")" startest.
-------
Folgender Text ist nur dafür gedacht, eine Alternative zu bieten, falls meine Befürchtung, dass das "wait" beim "moveobj()" in Functions übergangen wird, wahr wird. Und zwar brauchst du dann zwei Functions, beide mit "infinite" gestartet.
In Function 1 kommt:
Code: Select all
setnum(count;+1)
if_num(count;25)
{
moveobj(Huhn;620;+1;0)
setnum(count;0)
}
Hierbei wird das Objekt um 2 Pixel pro Sekunde nach unten verschoben. Für eine schnellere Bewegung ist ein kleinerer Wert statt 25 nötig.
Damit jetzt das Objekt nicht ewig verschoben wird, brauchst du eine Function 2 mit:
Code: Select all
if_yobj(Huhn;>300)
moveobj(Huhn;620;100;0)
Das heißt: Wenn das Objekt den y-Wert 300 überschreitet, wird es wieder auf 100 zurückgesetzt. Das setzt voraus, das das Objekt zu Beginn auf (620/100) positioniert war. Falls nicht, musst du die Werte entsprechend anpassen.