Devader Entwicklung Progress 11.03.17
Progress 11.03.17 12.03.2017 - 10:10 2
Folgenden Nutzern gefällt das Design: eitelkalk, krazun

Grid-GUI: 
Um das GUI Controller- und Keyboard-freundlich zu machen, habe ich vor einiger Zeit ein eigenes System gebaut, welches erlaubt per Attribut einen Knopf in einem Grid zu platzieren.

<div data-grid="{x:0,y:0}">Left</div><div data-grid="{x:1,y:0}">Right</div>

Das Grid lässt sich verschachteln und die Buttons können mehrere Gridfelder für sich beanspruchen. Da dies noch nicht gereicht hat um alle Probleme zu handhaben, wurden Layer eingeführt. Es kann jeweils nur im aktivierten Layer navigiert werden.

<div data-grid="{x:0,y:0}" data-layer="test">
    <div data-grid="{x:0,y:0}" data-layer="test">Left</div><div data-grid="{x:1,y:0}" data-layer="test">Right</div>
</div>
<div data-grid="{x:0,y:1}" data-layer="test">Bottom</div>

Gestern habe ich mich mit folgenden GUI Problemen rumgeschlagen:
- werden zwei Elemente mit den selben Grid-Angaben erstellt, wird eines überschrieben und die Navigation schlägt fehl. Hat eine Weile gedauert bis ich das gecheckt habe... Jetzt schreibe ich eine Fehlermeldung in die Konsole, wenn ein Element überschrieben wird.
- Das Optionsmenü kann im Spiel zu jeder Zeit aufgerufen werden. Ich musste es auf einen anderen Layer schieben, bisher war alles im selben, was auch zum überschreiben des Grids führte. Um nicht jedes neue Element auf diesen Layer schieben zu müssen, habe ich zwei neue Funktionen eingeführt "beginLayer(layerName)" und "endLayer()".
- der Wechsel Zwischensequenz -> Upgradescreen ist viel Kompakter geworden. Die Zwischensequenz wird über den Upgradescreen gezeichnet und bewegt sich dann nach oben weg um die Upgrades sichtbar zu machen. Auch hier musste ich Layer einführen, da die Überlagerung zu Problemen mit meine Gridsystem führte.
- NWjs verwendet keine DOM events für das hinzufügen/löschen von Nodes, deshalb setze ich dem MutationObserver ein. Ich hatte mir der Default-Selektion von Elementen ein Problem und wusste nicht wieso. Gestern habe ich rausgefunden das der MutationObserver asynchron über Microtasks funktioniert... jetzt weiss ich was das Problem war. Ich musste jetzt auch die selektion asynchron über Microtasks ausführen und jetzt läuft es

Waffen Power-Ups
- bisher haben diese für Verwirrung gesorgt, da sie einfach ein Time-Out besitzen. Egal wie oft man Schiesst, die Waffe verbraucht sich genau gleich. Das habe ich geändert, es gibt jetzt "Ammo". Jetzt macht es Sinn weniger zu Schiessen und andere Waffen (Nuke/Emp/Geschütztürme) die Arbeit machen zu lassen um sich was für bestimmte Gegner aufzusparen.


Aktualisiert: 12.03.2017 - 10:20
Grund:
Kommentar als Gast hinzufügen