Kolize jsou bezva, ale co opravdu pot┼Öebujeme je, aby se hr├í─ì h├¢bal. Pravd─øpodobn─ø byste zam├¡┼Öili do dokumentace a hledali, jak p┼Öidat poslucha─ìe k ud├ílostem ze vstupu, ale to zde nen├¡ pot┼Öeba. Phaser m├í vestav─øn├¢ mana┼¥er kl├ívesnice (Keyboard manager) a jedna z jeho v├¢hod je tato mal├í funkce:

cursors = this.input.keyboard.createCursorKeys();

D├í objektu cursor ─ìty┼Öi vlastnosti: up, down, left, right, kter├® jsou v┼íechny instancemi objektu Key. Potom v┼íe, co pot┼Öebujeme, je dotazovat se na jejich stav b─øhem pravideln├®ho vol├ín├¡ update:

if (cursors.left.isDown)
{
    player.setVelocityX(-160);

    player.anims.play('left', true);
}
else if (cursors.right.isDown)
{
    player.setVelocityX(160);

    player.anims.play('right', true);
}
else
{
    player.setVelocityX(0);

    player.anims.play('turn');
}

if (cursors.up.isDown && player.body.touching.down)
{
    player.setVelocityY(-330);
}

P┼Öesto, ┼¥e jsme p┼Öidali spoustu k├│du, tak by to m─ølo b├¢t docela srozumiteln├®.

Nejd┼Ö├¡ve se zkontroluje, zda je dr┼¥ena kl├ívesa left stisknut├í. Pokud ano, nastav├¡me z├ípornou horizont├íln├¡ rychlost a spust├¡me animaci pohybu doleva ('left'). Je-li m├¡sto toho dr┼¥ena kl├ívesa right, ud─øl├íme doslova opak. T├¡mto zp┼»sobem nastavov├ín├¡ rychlosti v ka┼¥d├®m sn├¡mku doc├¡l├¡me vytvo┼Öen├¡ pohybu ve stylu stop-start.

Hr├í─ì se bude pohybovat jen tehdy, kdy┼¥ je kl├ívesa dr┼¥ena stisknut├í a zastav├¡ hned, jak je uvoln─øna. Phaser tak├® umo┼¥┼êuje vytv├í┼Öet mnohem komplexn─øj┼í├¡ pohyb s hybnost├¡ a zrychlen├¡m, ale to pro tuto hru nepot┼Öebujeme. Zbytek testov├ín├¡ nuluje rychlost a nastavuje animaci na animaci 'turn', pokud nen├¡ ┼¥├ídn├í kl├ívesa stisknut├í.

Skok

Posledn├¡ ─ì├íst k├│du p┼Öid├ív├í skok. Na┼í├¡ kl├ívesou pro skok je kl├ívesa se ┼íipkou nahoru (up) a my testujeme, zda je stisknut├í. Nicm├®n─ø, testujeme nav├¡c je┼ít─ø, zda se hr├í─ì dot├¢k├í plo┼íinky, jinak by mohl sk├íkat i ve vzduchu.

Pokud jsou ob─ø podm├¡nky spln─øn├®, nastav├¡me vertik├íln├¡ rychlost na 330 pixel┼» za vte┼Öinu (z├íporn├í hodnota znamen├í sm─ør nahoru). Hr├í─ì bude padat zp─øt na zem automaticky, proto┼¥e na n─øj p┼»sob├¡ gravitace. S dokon─ìen├¢m ovl├íd├ín├¡m m├íme nyn├¡ hern├¡ sv─øt, kter├¢ m┼»┼¥eme proch├ízet. Spus┼Ñte part7.html a zkuste to. Pohrajte si s hodnotami jako je 330 pro skok. Zkuste je zv├¢┼íit nebo sn├¡┼¥it a pozorujte, jak├¢ to m├í vliv.

image