Source: control/ControlPaddle.js

/**
 * @author    Wolfgang Kowarschick <kowa@hs-augsburg.de>
 * @copyright 2017 - 2018
 * @license   CC-BY-NC-SA-4.0
 */

class ControlPaddle
{ /**
   * @param {ModelPaddle} p_paddle - the paddle to be controlled
   * @param {Object}     [p_config]
   * @param {string}     [p_config.up   = 'ArrowUp']
   * @param {string}     [p_config.down = 'ArrowDown']
   */
  constructor(p_paddle,
              { up: p_up = 'ArrowUp', down: p_down = 'ArrowDown'} = {}
             )
  { function o_start_moving(p_event)
    { if (p_event.key === p_up)
      { p_paddle.up(); }
      else if (p_event.key === p_down)
      { p_paddle.down(); }
    }
  
    function o_stop_moving(p_event)
    { if (p_event.key === p_up || p_event.key === p_down)
      { p_paddle.stop(); }
    }
  
    window.addEventListener("keydown", o_start_moving);
    window.addEventListener("keyup",   o_stop_moving);
  }
}

export {ControlPaddle};