If I wanted to make a tile of the bush I was drawing over the map with, and added it to my animImage so I could use it in my tiled map. How would I draw that bush on the map where I wanted it drawn? I have seen some examples of filling the map randomly with your different tiles, but how would you put that bush frame at a certain X,Y spot on your tiled map?
OK. Let's look at it this way. Are your tiles going to be of equal size (i.e. all tiles 64x64 or something)? If so, then you can do your scrolling and positioning very easily.
For example, in my tilemap, I create an animated image of all of the possible tiles (so the first part of the png from x=0 to x=63 and y=0 to y=63 is the grassy plains. Then from x=64 to x=127, with y being the same as before, I have a horizontal road, etc.) So I'm not actually animating the tiles, but I'm storing all of the tiles in one image. Then I create an array of the number of tiles I have wide by the number deep (i.e. Tilemap_Tiles [40,40]... though I actually do it as a field in a custom type). Then, I store the corresponding number for each tile (what frame it is in the image) in the array. For example, if I have two open plains tiles followed by a road tile at the top left of my tilemap, the array would look like Tilemap_Tiles [0,0]=0, Tilemap_Tiles [1,0] = 0, Tilemap_Tiles [2,0] = 1.
Then all you do is store the map offset (this is where the actual top left corner of the whole tilemap is in relation to the screen). Since I never want my screen to show a place where my map isn't (blank space), the offset will always be negative (I'll only be able to move my map up and left at the start... because if I had my top-left tile in the top-left corner and moved the map down I'd get blank space). So when the map is at the top-left corner, I'd initialize my offset type like this:
Type MapOffset Field x#=0.0,y#=0.0 End Type
Then, as I moved the map up, I'd subtract from my MapOffset.y (because the map origin is now above the top of the screen). Same for moving right. Add for down and left (but limit it to <= 0) When you render, run two for-next loops (one for x and one for y) and don't draw any tiles that aren't onscreen (multiply the x by the width of each tile, 64 here, and add the offset, then check to see if it is greater than -63 and less than the screen width... ditto that for the y). Voila, a scrolling tilemap!
Now, when you want to place objects, give them an x and y coordinate based on the offset (I wrote my own map editor so I can just point and click to set tiles and set objects, but this is what the editor is doing in code). So, if the first tree was in the middle of the first tile (32 pixels right and 32 pixels down), it's coordinates would be 31,31. If it was inside the 3rd tile on the top-left, and 10 pixels above the bottom and 20 pixels from the left side of that tile, it would be at 147,53 ( you calculate that: 3 X 64[ which is the size of each tile] - 45[first tile starts at pixel 0], 1 X 64[size of tile] - 11[first tile starts at pixel 0]). At render, you run 2 for-nexts just like with the tilemap and render at the x + MapOffset.x and y + MapOffset.y, if they are onscreen. Now you have a scrolling tilemap with objects attached.