Agar.io Arrow Keys

Use arrow keys to move your cell!

  1. // ==UserScript==
  2. // @name Agar.io Arrow Keys
  3. // @namespace https://greasyfork.org/en/users/46159-tom-burris2
  4. // @version 0.4
  5. // @description Use arrow keys to move your cell!
  6. // @author Tom Burris
  7. // @icon http://bit.ly/2oT4wRk
  8. // @match *agar.io/*
  9. // @grant none
  10. // @compatible chrome
  11. // @noframes
  12. // ==/UserScript==
  13.  
  14. "use strict";
  15.  
  16. let down = 0;
  17. const change = ({keyCode, type}) => {
  18. let i = keyCode - 37;
  19. let d = type === "keydown";
  20. if (i >= 0 && i < 4) {
  21. down = down & ~(1 << i) | d << i;
  22. let xy = [innerWidth / 2, innerHeight / 2];
  23. const min = Math.min(innerWidth, innerHeight);
  24. for (let n = 0; n < 4; ++n) {
  25. xy[n & 1] += (n < 2 ? -1 : 1) * min * (down >> n & 1);
  26. }
  27. canvas.dispatchEvent(new MouseEvent("mousemove", {
  28. clientX: xy[0],
  29. clientY: xy[1]
  30. }));
  31. }
  32. };
  33. addEventListener("keydown", change);
  34. addEventListener("keyup", change);