Firstly, thanks for your quick answer.
The collision was weird while testing the game, maybe I've made a mistake somewhere else. I'll make a better debugging so I can properly test collisions.
My camera class is pretty simple, despite keep aspect ratio and stuff used for parallax, it's just a cpBB.
I'm adding shapes to the space and, before drawing, calling queryBB at camera's area to retrieve shapes -> objects.
As you said, BB queries gave me a good performance. (until now)
I don't get what you mean by a more hierarchical structure. How would that work?
ta/tb might be what I was looking for!
I was having a small trouble when decided to add static shapes to Space's static body (instead of creating a single body for every object).
As the static body position is (0,0), all my shapes were drawn there.
I've spent a lot of time trying to figure that out, however I ended up creating a 'position' variable used by static objects, which is passed to drawDebugShape function, as shown in the previous post.
So, how does a/b/ta/tb work on static and non-static bodies exactly?