Toto je starší verze dokumentu!
Arcade Volleyball
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)
Úkoly
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