anchor.diff:        case REPEAT_NONE:
           break;
         case REPEAT_X:
  -        xTimes = (_context.game.stage.sourceWidth /
  +        xTimes = (_context.game.world.width /
               backgroundTileBitmapdata.width).ceil();
           break;
         case REPEAT_Y:
  -        yTimes = (_context.game.stage.sourceHeight /
  +        yTimes = (_context.game.world.height /
               backgroundTileBitmapdata.height).ceil();
           break;
         case REPEAT_XY:
  -        yTimes = (_context.game.stage.sourceHeight /
  +        yTimes = (_context.game.world.height /
               backgroundTileBitmapdata.height).ceil();
  -        xTimes = (_context.game.stage.sourceWidth /
  +        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.stage.sourceWidth / 
  -            backgroundTileBitmapdata.width);
  +        xScale = (_context.game.world.width / backgroundTileBitmapdata.width);
           break;
         case SCALE_FULL_Y:
           yTimes = 1;
  -        yScale = (_context.game.stage.sourceHeight /
  -            backgroundTileBitmapdata.height);
  +        yScale = (_context.game.world.height / backgroundTileBitmapdata.height);
           break;
         case SCALE_FULL_XY:
  -        xScale = (_context.game.stage.sourceWidth / 
  -                    backgroundTileBitmapdata.width);
  -        yScale = (_context.game.stage.sourceHeight /
  -                    backgroundTileBitmapdata.height);
  -        break;
  -    }
  -
  -    for (int i = 0; i < yTimes+1; i++) {
  -      for (int j = 0; j < xTimes+1; j++) {
  +        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
  
positive.code:    * * resourceName: name of the resource in the texture atlas(image name without extension) 
     */
    Background.textureatlas(State stateContext, String resourceName,
        String textureAtlasName,  
        {bool isMovable: false, bool addToWorld: true, 
         String repeatMode: DEFAULT_REPEAT_MODE, 
         String scaleMode: DEFAULT_SCALE_MODE}) 
      : this.bitmapdata( stateContext, 
        stateContext.game.resourceManager.getTextureAtlas(textureAtlasName)
          .getBitmapData(resourceName), 
        isMovable: isMovable, addToWorld: addToWorld, 
        repeatMode: repeatMode, scaleMode: scaleMode
      );
    
    /**
     * Add background to the world.
     */
  
negative.code:    * Is the background movable.
     */
    bool isMovable;
  
  
    /**
     * Create tile based background from [worldXL.BitmapData].
     */
    Background.bitmapdata(State stateContext, StageXL.BitmapData bitmapData,
        {bool isMovable: false, bool addToWorld: true, String repeatMode:
        DEFAULT_REPEAT_MODE, String scaleMode: DEFAULT_SCALE_MODE}) {
  
      _context = stateContext;
  
      StageXL.BitmapData backgroundTileBitmapdata = bitmapData;
  