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