Hi Leute,
vorab, Ja ich habe in google gesucht und nix passendes gefunden, Nein ich habe mir nicht die Zeit genommen in der Suche nach meinem spezifischen Problem zu suchen...Asche auf mein Haupt. ^^
Kommen wir aber jetzt zur Sache.
Ich arbeite gerade am Leveldesign meines Snake-ähnlichen Flashspiels.
Ab dem Level 2 möchte ich, dass der Gegenstand, der eingesammelt werden soll aller 10 Sekunden an eine andere Position springt, um den Spieler das einsammeln zu erschweren.
Dabei muss beachtet werden, dass wenn der Gegenstand eingesammelt wurde, von da an wieder von 0 begonnen wird bzw. von da an 10 Sekunden Zeit bleibt das Nächste einzusammeln.
Meine Funktion die ich dafür vorgesehen habe sieht so aus(Rechtschreibfehler an den Instanznamen einfach ignorieren, Namen sind Schall und Rauch ^^):
Aufgerufen wird diese Funktion im onEnterFrame des Bine-Objektes an dieser Stelle:
Wie realisiere ich jetzt das aller 10 Sekunden (mit den Berücksichtungen die ich oben nannte) das Objekt seine Position verändert.
Ein alternativer Lösungsansatz war dieser hier:
Hierbei ist zu beachten das total eine Zeitangabe ist die im Sekundentakt heruntergzählt wird und auf 60 eingestellt wurde(Art und Weise des Herunterzählens kann ich auf Anfrage gerne rüberreichen ^^ ist aber für das aktuelle Problem unwichtig)
Bei dieser Lösung ergibt sich allerdings das Problem das der Wert in total auch beim nächsten onEnterFrame noch gültig ist und somit eine Sekunde lang die Position ständig gewechselt wird.
vorab, Ja ich habe in google gesucht und nix passendes gefunden, Nein ich habe mir nicht die Zeit genommen in der Suche nach meinem spezifischen Problem zu suchen...Asche auf mein Haupt. ^^
Kommen wir aber jetzt zur Sache.
Ich arbeite gerade am Leveldesign meines Snake-ähnlichen Flashspiels.
Ab dem Level 2 möchte ich, dass der Gegenstand, der eingesammelt werden soll aller 10 Sekunden an eine andere Position springt, um den Spieler das einsammeln zu erschweren.
Dabei muss beachtet werden, dass wenn der Gegenstand eingesammelt wurde, von da an wieder von 0 begonnen wird bzw. von da an 10 Sekunden Zeit bleibt das Nächste einzusammeln.
Meine Funktion die ich dafür vorgesehen habe sieht so aus(Rechtschreibfehler an den Instanznamen einfach ignorieren, Namen sind Schall und Rauch ^^):
Code:
function changePosition(){
changer = function(){
var x = random(Stage.width-honey._width);
var y = random(Stage.height-honey._height);
if (x<bine._x || x>bine._x+bine._width) {
if (y<bine._y || y>bine._y+bine._height) {
honey._x = x;
honey._y = y;
} else {
y = random(Stage.height-honey._height);
}
} else {
x = random(Stage.width-honey._width);
}
}
posIt=setInterval(this, "changer", 10000);
}
Aufgerufen wird diese Funktion im onEnterFrame des Bine-Objektes an dieser Stelle:
Code:
if(level==1 && level<5){
changePosition();
}
Wie realisiere ich jetzt das aller 10 Sekunden (mit den Berücksichtungen die ich oben nannte) das Objekt seine Position verändert.
Ein alternativer Lösungsansatz war dieser hier:
Code:
if(level==1 && level<5){
if(total%17==0){
changePosition();
}
}
Hierbei ist zu beachten das total eine Zeitangabe ist die im Sekundentakt heruntergzählt wird und auf 60 eingestellt wurde(Art und Weise des Herunterzählens kann ich auf Anfrage gerne rüberreichen ^^ ist aber für das aktuelle Problem unwichtig)
Bei dieser Lösung ergibt sich allerdings das Problem das der Wert in total auch beim nächsten onEnterFrame noch gültig ist und somit eine Sekunde lang die Position ständig gewechselt wird.