anchor.diff:    published
       property Count: Integer read GetCount;
   end;
  +
   
   implementation
   
  
positive.code:   if (HyperLink <> '') and GetClick then OpenURL(HyperLink);
  end;
  
  
  constructor TelSpriteSheet.Create;
  begin
  
negative.code: 
  procedure TelParallaxSprite.Start();
  begin
    fPaused := false;
  end;
  
  procedure TelParallaxSprite.Stop();
  begin
    fPaused := true;
  end;
  
  procedure TelParallaxSprite.Pause();
  begin
    fPaused := true;
  end;
  
  procedure TelParallaxSprite.UnPause();
  begin
    fPaused := false;
  end;
  
  procedure TelParallaxSprite.Draw();
  var leftMissing, rightMissing, upMissing, downMissing, formerX, formerY : Integer;
  begin
    inherited Draw;
    // Ensure that the texture is bigger than the screen's width and height.
    // +2 because one picture can be partially visible, the second additional picture is guaranteed not to be seen.
    formerX := fInternalPosition.X;
    formerY := fInternalPosition.Y;
  
    //TODO: Ermitteln, wie viel nach links / rechts; oben / unten fehlt. Wenn das Bild zu weit außen ist, nach (0,0) verschieben (mindert Speicherbedarf).
    leftMissing := (fInternalPosition.X div Width )+1;
    rightMissing := (Application.Width - (fInternalPosition.X+ Width))/Width +1;
    upMissing := (fInternalPosition.y div Height) +1;
    downMissing := ((Application.Height - (fInternalPosition.y + Height)) div Height) +1;
  
    //  Draw shapes missing to completely fill the scene. Reset the sprite to its former coordinates after each run.
  
    for i := 0 to leftMissing do
    begin
      Move(formerX,formerY-(Width*i));
      (Self as TelSprite).Draw;
    end;
  
    Move(formerX, formerY);
    for i := 0 to rightMissing do
    begin
      Move(formerX,i*Width+formerY);
      (Self as TelSprite).Draw;
    end;
  
    Move(formerX, formerY);
    for i := 0 to topMissing do
    begin
      Move(formerX-i*Height,formerY);
      (Self as TelSprite).Draw;
    end;
  
    Move(formerX, formerY);
    for i := 0 to downMissing do
    begin
      Move(formerX+i*Height,formerY);
      (Self as TelSprite).Draw;
    end;
  
    Move(formerX, formerY);
  end;
  
  
  procedure TelParallaxSprite.Update(dt: Double);
  begin
    inherited Update(dt);
    case fDirection of
     dtUp: fInternalPosition.Y := fInternalPosition.Y -fSpeed*dt;
     dtDown: fInternalPosition.Y := fInternalPosition.Y +fSpeed*dt;
     dtLeft: fInternalPosition.Y := fInternalPosition.X -fSpeed*dt;
     dtRight: fInternalPosition.Y := fInternalPosition.X +fSpeed*dt;
  end;
  
  end.
  