JSFiddle - React, Tailwind, and code Playground

by dariusk

HTML

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Chain</title>
    <script type="text/javascript" src="http://buildnewgames.com/assets/article//team-snake/paper.js"></script>
    <script type="text/javascript" src="http://buildnewgames.com/assets/article//team-snake/keyDecode.js"></script>
    <script type="text/paperscript" canvas="canvas">
    // Adapted from the following Processing example:
    // http://processing.org/learning/topics/follow3.html

    var speed = 1;
    var path = new Path();
    path.style = {
      strokeColor: '#E4141B',
      strokeWidth: 20,
      strokeCap: 'round'
    };
    var velx = 0;
    var vely = 0;
    var size = 15;
    var segments = path.segments;
    var start = view.center / [10, 1];
    for (var i = 0; i < size; i++)
      path.add(start + new Point(i * 50, 0));


    function onFrame(e) {
        segments[0].point.y += vely;
        segments[0].point.x += velx;
        for (var i = 0; i < size - 1; i++) {
          var nextSegment = segments[i + 1];
          var position = path.segments[i].point;
          var angle = (position - nextSegment.point).angle;
          var vector = new Point({ angle: angle, length: 35 });
          nextSegment.point = position - vector;
        }
        path.smooth();
    }
  

  $(function() {
      $(document).keydown(function(e) {
        console.log(keyDecode(e));
        key = keyDecode(e);
        if (key == "up") {
          vely -= speed;
        }
        if (key == "down") {
          vely += speed;
        }
        if (key == "right") {
          velx += speed;
        }
        if (key == "left") {
          velx -= speed;
        }

        if (!e.shiftKey && !e.ctrlKey) {
          e.preventDefault();
        }
      });
    });
  </script>
</head>
<body>
  <canvas id="canvas" resize></canvas>
</body>
</html>