krouzek:arcade_volleyball

Toto je starší verze dokumentu!


Cíl: s použitím knihovny matter.js vytvoříme 2d hru, ve které si dva hráči pinkají s míčkem. Inspirací je prastará DOSová hra Arcade Volleyball (video).

* výchozí zdrojový kód (zip je nutné rozbalit)

1) Správně napojit ovládání druhého hráče.

Proměnné stisknutoVlevoB, stisknutoVpravoB, stisknutoNahoruB jsou už vytvořené a reagují na stisknutí kláves. To znamená, že se jejich hodnota změní z false na true ve chvíli kdy je klávesa stisknuta a změní se opačně, když je klávesa uvolněna. Postup je tedy zkopírovat to, jak je řešena reakce na tyto proměnné hráče A (úplně na konci kódu) a adaptovat aby se to týkalo hráče B.

2) Zlepšit fyziku

Experimentujeme s hodnotami restitution (odrazivost, mezi 0 a 1) a density (hustota → hmotnost)

    var ball = Bodies.circle(400, 0, 40, { render: { fillStyle: '#999999' } });
    Composite.add(engine.world, [ball]);
    ball.setRestitution(0.7)
    ball.density = 0.5

3) Klávesa nahoru výskok, ne let

Pokud se nemám od čeho odrazit, neměl bych vyskočit. Jedno z možných řešení je v reakci na stisknutoNahoruA použít funcki applyForce s vyšší hodnotou, ale podmínit tím, že jsme na zemi - tedy že naše y souřadnice je >499

4) Detekce kolize

  • krouzek/arcade_volleyball.1624459147.txt.gz
  • Poslední úprava: 2023/11/15 20:54
  • (upraveno mimo DokuWiki)