anchor.diff:      }
     }
   
  -  draw(context) {
  -  }
  +  void draw(context) {}
   
  -  update(dt) {
  +  void update(dt) {
       for (var child in children) {
         child.update(dt);
       }
  
positive.code:     context.translate(-positionAnchor.x * width, -positionAnchor.y * height);
    }
  
    drawWithTransform(context) {
  // TODO: refactor this out.
  //      context.save();
  //      context.strokeStyle = "#FF0000";
  //      context.beginPath();
  //      context.rect(position.x, position.y, width, height);
  //      context.stroke();
  //      context.restore();
  
        context.save();
        transform(context);
        draw(context);
        context.restore();
    }
  
    drawWithChildren(context) {
      if (visible) {
        for (var child in children) {
          child.drawWithChildren(context);
  
negative.code: part of cocos;
  
  abstract class GameNode {
    vec2 position = new vec2(0, 0);
    vec2 positionAnchor = new vec2(0.5, 0.5);
    vec2 rotationAnchor = new vec2(0.5, 0.5);
    vec2 scale = new vec2(1, 1);
  