anchor.diff:    }
   
     TwoBarrels(CanvasElement canvas) {
  +    canvas.onClick.listen((e){
  +      canvas.requestPointerLock();
  +    });
       window.onResize.listen((e){
         resize(canvas, e.currentTarget.innerWidth, e.currentTarget.innerHeight);
  +    });
  +    window.onMouseMove.listen((e){
  +      mousemove_x = e.movement.x;
  +    });
  +    document.onPointerLockChange.listen((e){
  +      hasPointerLock = canvas == document.pointerLockElement;
       });
       // weird, but without specifying size this array throws exception on []
       _currentlyPressedKeys = new List<bool>(128);
  
positive.code:       player.movement.add(a.transform(player.rotation.clone()).scale(-0.0001));
      }
      if (pressed(81)) { //q
        // doesn't work
        Matrix2 a = new Matrix2.rotation(radians(1.0));
        player.rotation = a.transform(player.rotation.clone()); 
      }
      if (pressed(69)) { //e
        // doesn't work
        Matrix2 a = new Matrix2.rotation(radians(-1.0));
        player.rotation = a.transform(player.rotation.clone());
      }
  
negative.code:   double _lastTime = 0.0;
  
    List<bool> _currentlyPressedKeys;
    int mousemove_x = 0;
    
    bool hasPointerLock = false;
  
    var _requestAnimationFrame;
  
  