Skip to content

Instantly share code, notes, and snippets.

@correosdelbosque
Forked from jacekd/2048-circle.js
Created February 17, 2018 21:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save correosdelbosque/99de23a1a1610f7584279dd516e5f332 to your computer and use it in GitHub Desktop.
Save correosdelbosque/99de23a1a1610f7584279dd516e5f332 to your computer and use it in GitHub Desktop.
2048 keys in circle moves
function mouseEvent(type, sx, sy, cx, cy) {
var evt;
var e = {
bubbles: true,
cancelable: (type != "mousemove"),
view: window,
detail: 0,
screenX: sx,
screenY: sy,
clientX: cx,
clientY: cy,
ctrlKey: false,
altKey: false,
shiftKey: false,
metaKey: false,
button: 0,
relatedTarget: undefined
};
if (typeof( document.createEvent ) == "function") {
evt = document.createEvent("MouseEvents");
evt.initMouseEvent(type,
e.bubbles, e.cancelable, e.view, e.detail,
e.screenX, e.screenY, e.clientX, e.clientY,
e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
e.button, document.body.parentNode);
} else if (document.createEventObject) {
evt = document.createEventObject();
for (prop in e) {
evt[prop] = e[prop];
}
evt.button = { 0:1, 1:4, 2:2 }[evt.button] || evt.button;
}
return evt;
}
function dispatchEvent (el, evt) {
if (el.dispatchEvent) {
el.dispatchEvent(evt);
} else if (el.fireEvent) {
el.fireEvent('on' + type, evt);
}
return evt;
}
function fireKey(el, key)
{
if(document.createEventObject)
{
var eventObj = document.createEventObject();
eventObj.keyCode = 37; // left
el.fireEvent("onkeydown", eventObj);
}else if(document.createEvent)
{
var eventObj = document.createEvent("Events");
eventObj.initEvent("keydown", true, true);
eventObj.which = key;
el.dispatchEvent(eventObj);
}
}
function action ()
{
fireKey(document, 37);
fireKey(document, 38);
fireKey(document, 39);
fireKey(document, 40);
var t = document.getElementsByClassName("game-over")[0];
if (t != undefined) {
var evt = mouseEvent("click", 1, 50, 1, 50);
dispatchEvent(document.getElementsByClassName("retry-button")[0], evt);
}
}
setInterval(action, 200);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment