Skip to content

Instantly share code, notes, and snippets.

@neslinesli93
Created January 2, 2020 21:03
Show Gist options
  • Save neslinesli93/c5aa02fbf17e0c25bdf2d771326d409e to your computer and use it in GitHub Desktop.
Save neslinesli93/c5aa02fbf17e0c25bdf2d771326d409e to your computer and use it in GitHub Desktop.
Pattern match on specific keys in order to handle correctly user input
# Handle keydown events
@spec on_input(Socket.t(), String.t()) :: Socket.t()
defp on_input(socket, key) when key in @left_keys,
do: move_paddle(socket, :left)
defp on_input(socket, key) when key in @right_keys,
do: move_paddle(socket, :right)
defp on_input(socket, _), do: socket
# Handle keyup events
@spec on_stop_input(Socket.t(), String.t()) :: Socket.t()
defp on_stop_input(socket, key) when key in @left_keys,
do: stop_paddle(socket, :left)
defp on_stop_input(socket, key) when key in @right_keys,
do: stop_paddle(socket, :right)
defp on_stop_input(socket, _), do: socket
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment