Best way is to define your own bounding box for the sprite and decide a specific size to test it against other shapes in your level.
Otherwise you can use the property sprite.boundingBox
which will return the CGRect of the actual sprite but I think this is related to the current transformation stack according to the CCNode
tree. It works in many situations but not if sizes according to animation phases change so much.
So, choose a specific bounding box:
CGSize playerBounds = CGSizeMake(20,20);
CGRect bound = CGRectMake(player.position.x, player.position.y, playerBounds.width, playerBounds.height);
// or CGRect bound = player.boundingBox
test it against your level:
for (CCSprite *levelPiece in pieces.children) {
if (CGRectIntersectsRect(bound, levelPiece.boundingBox)) {
// they're colliding
}
}