JSFiddle - React, Tailwind, and code Playground

by unsign3d

HTML

<canvas id="a" width="640" height="480"></canvas>

JavaScript

var a = document.getElementById("a");

var keys = [65536];
var xMouse, yMouse, mouseButton;

a.onmouseup = function (event) {
    mouseButton = 0;
};

a.onmousedown = function (event) {
    mouseButton = event.button;
};

a.onmousemove = function (event) {
    xMouse = event.clientX;
    yMouse = event.clientY;
};

document.body.onkeyup = function (event) {
    keys[event.keyCode] = false;
};

document.body.onkeydown = function (event) {
    keys[event.keyCode] = true;
};

var sprites = (
    '' +
    ' !!!!  ' +
    ' !oooo ' +
    ' !oooo ' +
    '  **   ' +
    '  **XX ' +
    '  o*XX ' +
    '  **   ' +
    '  **   ' +
    '  **   ' +
    '  ooo  ' +

    '  !    ' +
    ' !!!!  ' +
    ' !oooo ' +
    '  oooo ' +
    '  **XXX' +
    '  *oXXX' +
    '  **** ' +
    ' ** ** ' +
    '**   oo' +
    'oo     ' +

    '  !!!  ' +
    ' !oooo ' +
    '!!oooo ' +
    '  ** XX' +
    '  ***oX' +
    '  ** XX' +
    '  ***  ' +
    ' ***** ' +
    'o** ** ' +
    'o    oo' +

    ' !!!!  ' +
    '!!oooo ' +
    ' !oooo ' +
    '  **   ' +
    '  **XXX' +
    '  *oXXX' +
    '  **   ' +
    ' o***  ' +
    '  o**  ' +
    '    oo ' +

    '       ' +
    '       ' +
    ' !!!!  ' +
    ' !oooo ' +
    ' !oooo ' +
    '  **   ' +
    '  **XX ' +
    '  o*XX ' +
    ' #*# # ' +
    '  ###  ' +

    '       ' +
    '       ' +
    '       ' +
    '       ' +
    '       ' +
    '   #   ' +
    '#!!!! #' +
    ' !oooo ' +
    ' #o#o# ' +
    ' ##### ' +

    '       ' +
    '       ' +
    '       ' +
    '       ' +
    '       ' +
    '       ' +
    '       ' +
    '       ' +
    '   #   ' +
    '#     #').split('');

var ctx = a.getContext('2d');
var img = ctx.getImageData(0, 0, 640, 480);
var pixels = img.data;

var level = [1024 * 2048];

var levelNames = new Array('Level 1: Miners4k', 'Level 2: Rocks', 'Level 3: Descent', 'Level 4: Slime', 'Level 5: Massive', 'Level 6: Riiiight', 'You won!');
var infoStrings = new Array('Bring the gold home!', 'Rocks are...