переопределяет setRotattion для спрайта, поэтому при изменении свойства поворота вы также поворачиваете тело box2d
-(void)setRotation:(float)rotation {
float32 b2Angle = -1 * CC_DEGREES_TO_RADIANS(self.rotation);
spriteBody->SetTransform(b2Position, b2Angle);
}
Углы в cocos2d и box2d обрабатываются по-разному, поэтому вам нужно преобразовать в радианы и умножить на -1, чтобы изменить направление