Felix Riesterer: Animation mit setTimeOut verzögert nicht

Beitrag lesen

Lieber Gunnar Bittersmann,

wie ein Browser-Spiel (ähnlich meines Mensch-ärgere-dich-nicht) mit CSS-Animationen anstelle von reinen JS-Animationen gelingen soll.

Mit Transitions. Mittels geeigneter transition-timing-function wie ease-in-ease-out ist es dann auch ein leichtes, die Spielsteine beschleunigt loslaufen zu lassen und dann abzubremsen.

ich überlege gerade, wie ein solcher Code aussehen muss, damit "es funzt". Ist der dann noch sinnvoll wartbar und ebenso deskriptiv, wie eine reine JS-Version? ich vermute nicht. Und da die Spiele-Logik in JS implementiert werden muss (mach das auch mal mit CSS!), sehe ich wirklich nicht ein, wieso Du in diesem Anwendungsfall noch immer darauf bestehst, dass eine mit CSS-Transitions realisierte Animation sinnvoller - sorry, mittlerweile formulierst Du im Grunde "performanter", was nicht wirklich dasselbe ist - wäre.

Zur besseren Hardwareunterstützung wird die Position der Spielsteine nicht mit left und top verändert, sondern mit transform: translation() | translationX() | translationY().

Aha, und daran kann ich dann ablesen, auf welchem Spielfeld sich der jeweilige Spielstein gerade befindet? Hmm... Es scheint, dass es Dir nicht gelingen will, mich von Deiner Sichtweise zu überzeugen.

Da die Spielsteine nicht den kürzesten Weg laufen sollen, sondern entlang der Spielfelder, wirst du auf das transitionend-Event lauschen wollen.

Auf ein Event lauschen? So richtig wie mit JavaScript? Warum nur sollte ich das wollen? Warum animiere ich nicht gleich völlig in JS??

Dass der Algorithmus immer noch ziemlich unsinnige Züge macht, ist dir bewusst?

Der Algorithmus sucht sich zufällig einen der möglichen Spielzüge aus und setzt ihn um. Was ist daran "unsinnig"? Vielleicht meinstest Du eigentlich "nicht zielorientiert"? Das wäre in der Tat eine wesentlich andere Aussage, denn unter "unsinnig" stelle ich mir vor, wie jemand mit dem Spielstein in den Vorratsbereich eines Mitspielers fährt, um dort eine wartende Spielfigur zu schlagen - oder die Figur gleich in die Nase zu stöpseln, oder ... hmm... wer kleine Kinder hat(te), kennt sicher noch andere Beispiele aus dem echten Leben für "unsinnig".

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)