Alright so im working on making my bullets bounce of walls and floors, Right now the way i have it I think there is a better way to do it, If the bullet hits the top or bottom of a block then it's x vector is multiplied by one, if it hits the left or right of a block the y speed should be multiplied by one, that part works but im having a problem detecting what part of the block it hits

Haven't looked in detail yet, but as far as I can tell you never actually reset the bullet's position on collision; you flip the velocity but leave it inside the wall.

What I like to do in this situation is check for collisions normally, but then if you find a collision use a sort of swept collision technique to figure out exactly how far the bullet can move. You can do this by calculating a unit vector for your bullet velocity and on collision decrement by this unit vector until the collision is cleared. After you have cleared the collision you should be able to decide exactly what direction the bullet should bounce.