Well I dunno how or why but:
I added much the same pixel detection to prevent the actual person walking through walls and fiddled with the location the bullet appears from the sprite (so not it looks like the bullet comes out of the gun instead of the forehead) and that seems to have fixed the problem.

Now I don't know what to do next. I think I've probably bitten off more than I can chew. The last game I made was with Turbo Pascal 7 about 7 or 8 years ago and had no graphics whatsoever. Things were so much simpler back then...

I think my problem will be that once I get a game playable (however basic it looks and plays) then that'll be the end of it. That'll be good enough and I'll move on to something else. That's what happened in the olden days anyway.

I guess there's good arguments for both ways of making a program. Unfortunately I had a great idea a few days ago that I figured I'd leave a little later and now I can't remember what it was. Maybe I should leave notes for myself...

Another question though:
Is figuring out Image Lists worth it for small games? So far I have series of 8 bitmaps for the person, the gun flash, ect that load from file depending on direction facing. There doesn't seem to be any problem doing it this way, but I was planning on adding some sort of movement animations, which would make it 1 or 2 dozen images for just the person alone (eventually there will be the same for up to 10 robots also).

Obviously repeatedly loading pictures from the HDD would be the least efficient way of doing it, but it's all so overwhelming I don't know if I should concentrate on understanding one component at a time or slowly build off what I already know, incorperating new components as I learn them.