Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <title>Jim</title>
  <style>
    canvas {
        display: block;
        border: 3px solid black;
        margin: auto;
    }
  </style>
</head>
<body>
  <div>
  <script>
    var
    // Control constants
    UpArrow   = 38,
    DownArrow = 40,
    LeftArrow = 37,
    RightArrow = 39,
    WKey = 87,
    AKey = 65,
    SKey = 83,
    DKey = 68,
    player =
    {
        x: null,
        y: null,
        diameter: 20,
        width: 30,
        height: 20,
        update()
        {
            if (keystate[LeftArrow] || keystate[AKey]) this.x -= 5;
            if (keystate[RightArrow] || keystate[DKey]) this.x += 5;
            if (keystate[UpArrow] || keystate[WKey]) this.y -= 5;
            if (keystate[DownArrow] || keystate[SKey]) this.y += 5;
            this.x = Math.max(Math.min(this.x, cvs.width - this.diameter), 0);
            this.y = Math.max(Math.min(this.y, cvs.height - this.diameter), 0);
        },
        draw()
        {
            ctx.fillStyle = "#BEFF93";
            ctx.beginPath();
            ctx.arc(this.x, this.y, this.diameter, 0, 2*Math.PI);
            ctx.fill()
            ctx.fillStyle = "#000000"
            ctx.textAlign = "center";
            ctx.fillText("jim", this.x, this.y+2);
            // ctx.fillRect(this.x, this.y, this.width, this.height);
        }
    },
    cvs =
    {
        width: 500,
        height: 500,
        create()
        {
            canvas = document.createElement("canvas");
            canvas.width = this.width;
            canvas.height = this.height;
            ctx = canvas.getContext("2d");
            document.body.appendChild(canvas);
        }
    };
    function main()
    {
        cvs.create();
        init();
        var loop = function()
        {
            update();
            draw();
            window.requestAnimationFrame(loop, canvas);
        };
        window.requestAnimationFrame(loop, canvas);
    }
    function init()
    {
        keystate = {};
        document.addEventListener("keydown", function(evt) {
            keystate[evt.keyCode] = true;
        });
        document.addEventListener("keyup", function(evt) {
            delete keystate[evt.keyCode];
        });
        
        player.x = 100;
        player.y = 200;
    }
    function update()
    {
        player.update();
    }
    function draw()
    {
        ctx.fillStyle = "#FFF";
        ctx.fillRect(0, 0, cvs.width, cvs.height);
        ctx.save();
        player.draw();
        ctx.restore();
    }
    main();
  </script>
  </div>
</body>
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers