Agar.io Arrow Keys

Use arrow keys to move your cell!

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Agar.io Arrow Keys
// @namespace    https://greasyfork.org/en/users/46159-tom-burris2
// @version      0.4
// @description  Use arrow keys to move your cell!
// @author       Tom Burris
// @icon         http://bit.ly/2oT4wRk
// @match        *agar.io/*
// @grant        none
// @compatible   chrome
// @noframes
// ==/UserScript==

"use strict";

let down = 0;
const change = ({keyCode, type}) => {
	let i = keyCode - 37;
	let d = type === "keydown";
	if (i >= 0 && i < 4) {
		down = down & ~(1 << i) | d << i;
		let xy = [innerWidth / 2, innerHeight / 2];
		const min = Math.min(innerWidth, innerHeight);
		for (let n = 0; n < 4; ++n) {
			xy[n & 1] += (n < 2 ? -1 : 1) * min * (down >> n & 1);
		}
		canvas.dispatchEvent(new MouseEvent("mousemove", {
			clientX: xy[0],
			clientY: xy[1]
		}));
	}
};
addEventListener("keydown", change);
addEventListener("keyup", change);