Game, Level und Viewportvereinzelung

Es gibt jetzt Game, Level und Viewport Klassen
Das Game hält derzeit 1 Level. Wird es durchschritten, wird ein neues
erzeugt, dass das alte ersetzt.
Auf der Basis kann der nächste Schritt werden, dass es mehrere Level
gibt, in die man auch zurück kehren kann.

Das ganze Instanzieren dauert hier leider ziemlich lange.
Ein paar globale Variablen können bald eingespart werden.

Der Commit ist noch nicht für ein Pullrequest geeignet. Es ist nur eine
Vorschau.

Die Drawfunktionen warten noch darauf wie besprochen umgestaltet zu
werden.
ein paar Änderungen

GetNearestFreeFieldVector ist jetzt eine Funktion der maze.

game enthält setPause und setPlay Funktionen

Allerdings gibt es weiterhin noch das Problem, dass beim 2. Level die
Gegner nicht mehr gezeichnet werden. Das liegt wohl an den Timestamps.
starte ich den gameloop() ohne Parameter, werden sie nicht gezeichnet.
Starte ich ihn mit gameloop(0), können die Gegner gezeichnet werden,
dafür gibt es für den Spieler bei der ersten Bewegung eine
Fehlermeldung.
das Keyboard gehört jetzt dem Game

Die Controller des Menschen gehören jetzt dem Game und werden damit nur
einmalig instanziert. Die Level setzen immer nur die aktive Figur, die
gesteuert werden soll. Damit bleiben bei mehreren Leveln
Überschneidungen aus.
gestures ist jetzt eine Klasse

sie heißt jetzt GestureController. Im game und level ist es hier so
eingebaut.
Martins Auslagerung ist eingebaut

Jetzt habe ich die Commits aus Martins Draw Branch übernommen.
Das Ergebnis läuft, braucht aber mit jeder Klasse, die bisher dazu kam,
beim Start deutlich länger.
Refactoring

4 Sekunden braucht bei mir das CreateMazeImage. 4. Sek waren notwendig,
weil es irrtümlicherweise 2x aufgerufen wurde. 3 Sek dauert hier das
Laden der Bilder, auf deren Fertigstellung lunte_adv wartet um dann das
game zu instanzieren.
Im letzten Punkt könnten wir etwas Parallelität vertragen. Und auf die
Art wie bisher die Bilder geladen werden, wird unnötiger Weise der
Browsercache umgangen.

Insgesamt habe ich soweit wie möglich die Zuweisung von Funktionen zu
Variablen aus den Konstruktorfunktionen heraus genommen und in
Prototypen verschoben. Denn im Konstruktor werden sie dann doch jedes
Mal neu angelegt. Das ist schlecht für die Performance. Und meine IDE
konnte dann verkettete Objekte nicht auflösen, weil die Funktionen in
den Entfernten Objekten nicht enthalten waren. Jetzt geht es.
Typokorrectur

mit _this statt this kann man auf dem Tablet auch wieder nach unten
laufen.
Merge pull request #21 from matinhpfsc/Create-Game-And-Level-Class

Game, Level und Viewportvereinzelung