Вы должны получить угол от джойстика.Например, SneakyInput имеет свойство градусов, которое позволяет вращать маркеры следующим образом:
_bullet.rotation = -joystick.degrees;
И ваш метод обновления может быть таким:
void update:(ccTime) delta
{
float moveAngle = _bullet.rotation;
CGPoint deltaPos = CGPointMake(cos(moveAngle) * velocity, sin(moveAngle) * velocity);
_bullet.position = ccpAdd(self.position, deltaPos);
}