Keresés

Új hozzászólás Aktív témák

  • martonx
    veterán

    Sziasztok ismét! :)

    Módosítottam a játékom kódján egy kicsit, hogy - elvileg - minden számítógépen azonos sebességgel fusson, bár ezt még most nem tudom leellenőrizni, mivel pillanatnyilag nem vagyok ama "gyorsabb de a játékot lassabban futtató" gép közelében.
    Ezért közzétenném itt a kódom ezt végző részét, hogy megnézhessétek és meg tudjátok mondani, hogy jó-e , ahogy csináltam.
    Szóval szerintetek jó ez így? Az én gépemen simán fut. Akkor elvileg minden képfrissítési frekvencián jól működne?
    let jateksebessege = 100;
    function jatekciklus() {
       setTimeout(function() {
            requestAnimationFrame(jatekciklus);
            //a játékom fő kódja a rajzolással, stb.
        }, 1000 / jateksebessege);
    };
    requestAnimationFrame(jatekciklus);

    Egyébként innen puskáztam ki:
    https://www.kirupa.com/html5/animating_with_requestAnimationFrame.htm
    és annyit kellett átalakítanom rajta, hogy fentebb az utolsó sorba is be kellett szúrnom a requestAnimationFrame()-et, mert különben csak nagy fehérséget mutatott valamiért.

    Két dolog:

    1. tanuljuk már meg végre, hogy mi a különbség a let és const között :) ez a halálom, amikor valaki a legalapabb dolgot is fogalmatlanul használja.
    2. nekem ez a megoldás sokkal szimpatikusabb: https://stackoverflow.com/questions/19764018/controlling-fps-with-requestanimationframe minden olyan megoldástól a hideg kiráz, ami animációval kapcsolatos és settimeout / setinterval van benne. Ezt a megoldás még kombinálnám annyival, hogy magát az animációt kiszervezném egy külön worker thread-be, mert ezekben az esetekben az a gond, hogy ha komplex az animáció / nagyon gyenge a futtató vas, akkor lehet, hogy több frame-et is át fogsz lépni, mint eredetileg tervezted.

Új hozzászólás Aktív témák