Animate CC Zeitfunktionen für Spiele

Beispiel tick/tick3b.fla

Hier stelle ich ein paar Funktionen vor, die man für Spiele gut gebrauchen kann. Man kann die Zeit starten, pausieren, beenden und wieder neu starten.

Der Startbutton dient dazu die Zeit neu zu starten und die Zeit nach einem Klick auf den Pause-Button weiterlaufen zu lassen. Der Stop Button beendet die Zeit. Wenn man anschließend wieder den Startbutton drückt, startet die Zeit wieder bei 0.

Die Anzeige zeigt die evt.runTime an. Das ist die Zeit abzüglich der Zeit, während Ticker.paused = true ist.

Wenn der Stop-Button gedrückt wird, wird die Zeit ermittelt mittels
createjs.Ticker.getEventTime(true)
Durch den Wert true ist es die gesamte Zeit des Tickers abzüglich der pausierten Zeit. Beim Wert false, wäre es die gesamte Laufzeit.

				createjs.Ticker.addEventListener("tick", tickTack.bind(this));

				createjs.Ticker.paused = true;
				var spielzeit = 0;


				this.start_btn.addEventListener("click", startTime.bind(this));
				this.pause_btn.addEventListener("click", pauseTime.bind(this));
				this.stop_btn.addEventListener("click", endTime.bind(this));

				function tickTack(evt) {
				var now = Math.floor((evt.runTime)) - spielzeit;
				if (!evt.paused && now > 0) {
				this.zeitAnzeige.text = timeString(now);
				}
				}

				function startTime() {
				createjs.Ticker.paused = false;
				this.zeitInfo.text = "";
				this.start_btn.visible = false;
				this.pause_btn.visible = true;
				}


				function pauseTime() {
				createjs.Ticker.paused = true;
				this.zeitInfo.text = "paused";
				this.pause_btn.visible = false;
				this.start_btn.visible = true;
				}

				function endTime() {
				spielzeit = createjs.Ticker.getEventTime(true);
				console.log(spielzeit);
				createjs.Ticker.paused = true;
				this.zeitInfo.text = "stopped";
				this.pause_btn.visible = false;
				this.start_btn.visible = true;
				}

				function timeString(mseconds) {
				var seconds = Math.floor(mseconds/1000);
				var min = Math.floor(seconds / 60);
				var sec = seconds % 60;
				var min2digit = (min < 10) ? "0" + min : min;
				var sec2digit=(sec < 10) ? "0" + sec : sec;
				return min2digit + ":" + sec2digit;
				}