Hét vraag- en antwoordplatform van Nederland

Kun je lussen gebruiken voor Javascript animatie?

Ik probeer een spelletje te maken in javascript. Het enige werkende voorbeeld van animatie dat ik tot nu toe tegen ben gekomen, is met recursie.

De bedoeling is natuurlijk dat een plaatje een pixel wordt opgeschoven, dit wordt afgebeeld, het plaatje weer wordt opgeschoven, dit weer wordt afgebeeld etcetera.
Wat de lus lijkt te doen is een plaatje opschuiven, opschuiven, opschuiven, enzovoort, en daarna pas afbeelden dat het plaatje tien pixels verder staat. Hoe los ik dit op? Ik vind recursie niet handig.

Verwijderde gebruiker
13 jaar geleden

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Geef jouw antwoord

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

/
Geef Antwoord
+
Selected image

Het beste antwoord

Met setinterval() en clearinterval() heb je meer sturing over het proces dan met recursie.

Timeout() zal niet werken, omdat dit alleen maar de uitvoering van 1 funktie uitsteld, intussen loopt rest van het script gewoon door, ook al zitten er meerdere timeouts in, ze "wachten niet op elkaar".
(Lees meer...)
Verwijderde gebruiker
13 jaar geleden

Andere antwoorden (2)

Ik zou je aanraden in jQuery te duiken. Hierin zitten animatie-oplossingen die je niet zelf from scratch hoeft te gaan zitten uitdenken.
(Lees meer...)
Verwijderde gebruiker
13 jaar geleden
Animatie in een for or while lus gaat niet werken. De browser krijgt dan niet de tijd de veranderingen weer te geven en alles lijkt stil te staan. Wat wel werkt is in een timer loop; google op setTimeout() hiervoor.

Toegevoegd na 1 minuut:
Of Google op requestAnimFrame(); is de wat modernere timer loop voor animatie.
(Lees meer...)
Verwijderde gebruiker
13 jaar geleden
Deel jouw antwoord

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

/
Geef Antwoord
+
Selected image