anchor.diff:      _backgroundTileList.forEach((tile) {
         tile.x = (tile.x + vx * time).round();
         tile.y = (tile.y + vy * time).round();
  -      
  -      if (vx > 0 && tile.x >= _context.game.stage.sourceWidth) {
  -          
  -        tile.x = (tile.x - _context.game.stage.sourceWidth - tile.width).round();
  -      
  +
  +      if (vx > 0 && tile.x >= _context.game.world.width) {
  +
  +        tile.x = (tile.x - _context.game.world.width - tile.width).round();
  +
         } else if (vx < 0 && tile.x <= -tile.width) {
  -          
  -        tile.x = (tile.x + _context.game.stage.sourceWidth + tile.width).round();
  -        
  +
  +        tile.x = (tile.x + _context.game.world.width + tile.width).round();
  +
         }
  -      
  -      if (vy > 0 && tile.y >= _context.game.stage.sourceHeight) {
  -
  -        tile.y = (tile.y - _context.game.stage.sourceHeight - tile.height).round();
  +
  +      if (vy > 0 && tile.y >= _context.game.world.height) {
  +
  +        tile.y = (tile.y - _context.game.world.height - tile.height).round();
   
         } else if (vy < 0 && tile.y <= -tile.height) {
  -        
  -        tile.y = (tile.y + _context.game.stage.sourceHeight + tile.height).round(); 
  -        
  +
  +        tile.y = (tile.y + _context.game.world.height + tile.height).round();
  +
         }
  -      
  +
       });
       return true;
   
  
positive.code:       this.addToWorld();
      }
    }
    
    /**
     * Create static colored background. 
     */
    Background.color(State stateContext, 
         {bool isMovable: false, bool addToWorld: true, 
          int width: 1, int height: 1, bool transparent: false, 
          int color: 4294967295, num pixelRatio: 1.0,
          String repeatMode: DEFAULT_REPEAT_MODE, 
          String scaleMode: DEFAULT_SCALE_MODE})
        : this.bitmapdata(stateContext, 
            new StageXL.BitmapData(width,height,transparent,color,pixelRatio),
            isMovable: isMovable, addToWorld: addToWorld,
            repeatMode: repeatMode, scaleMode: scaleMode
        );
  
    /**
     * Create a Background object from an image.
     * 
     * * resourceName: name of the image in the resourcesManager
     */
    Background.image(State stateContext, String resourceName, 
        {bool isMovable: false, bool addToWorld: true, 
         String repeatMode: DEFAULT_REPEAT_MODE, 
         String scaleMode: DEFAULT_SCALE_MODE}) 
      : this.bitmapdata(stateContext, 
          stateContext.game.resourceManager.getBitmapData(resourceName), 
          isMovable: isMovable, addToWorld: addToWorld, 
          repeatMode: repeatMode, scaleMode: scaleMode
      );
  
    /**
     * Create a Background object from an image, which is inside a texture atlas(JSON).
  
negative.code:       case REPEAT_NONE:
          break;
        case REPEAT_X:
          xTimes = (_context.game.world.width /
              backgroundTileBitmapdata.width).ceil();
          break;
        case REPEAT_Y:
          yTimes = (_context.game.world.height /
              backgroundTileBitmapdata.height).ceil();
          break;
        case REPEAT_XY:
          yTimes = (_context.game.world.height /
              backgroundTileBitmapdata.height).ceil();
          xTimes = (_context.game.world.width /
              backgroundTileBitmapdata.width).ceil();
          break;
      }
  
  
      double xScale = 1.0;
      double yScale = 1.0;
  
      switch (scaleMode) {
        case SCALE_NONE:
          break;
        case SCALE_FULL_X:
          xTimes = 1;
          xScale = (_context.game.world.width / backgroundTileBitmapdata.width);
          break;
        case SCALE_FULL_Y:
          yTimes = 1;
          yScale = (_context.game.world.height / backgroundTileBitmapdata.height);
          break;
        case SCALE_FULL_XY:
          xScale = (_context.game.world.width / backgroundTileBitmapdata.width);
          yScale = (_context.game.world.height / backgroundTileBitmapdata.height);
          break;
      }
  
      for (int i = 0; i < yTimes + 1; i++) {
        for (int j = 0; j < xTimes + 1; j++) {
          backgroundTileBitmap = new StageXL.Bitmap(backgroundTileBitmapdata);
          backgroundTileBitmap
              ..x = backgroundTileBitmap.width * j
  