anchor.diff:        true, bool isMoveAble: false}) : super(
         stateContext.game.resourceManager.getBitmapData(resourceName)) {
       this.isMoveAble = isMoveAble;
  -    if(addToStage){
  -      this.addToStage(stateContext);
  +    _context = stateContext;
  +    if (addToStage) {
  +      this.addToStage();
       }
     }
   
     bool advanceTime(num time) {
  +    if ((x <= 0 || x >= _context.game.stage.sourceWidth) || 
  +        (y <= 0 || y >= _context.game.stage.sourceHeight)) {
  +      removeFromStage();      
  +    }
       x = x - vx * time;
       y = y - vy * time;
     }
  
positive.code:     pivotY = bitmapData.height / 2;
    }
  
    addToStage(State context) {
      context.game.stage.addChild(this);
      if (isMoveAble) {
        context.game.stage.juggler.add(this);
      }
    }
    
    killSprite(State context){
      context.game.stage.removeChild(this);
      if(isMoveAble){
        context.game.stage.juggler.remove(this);
      }
    }
  
  
negative.code: class FullSprite extends InteractiveBitmap implements StageXL.Animatable {
  
    bool isMoveAble;
  
    State _context;
  
    /**
     * Is the sprite alive?
  