Мне не удалось найти это после очистки форумов. Я хотел бы реализовать что-то вроде этого ... главный герой всегда движется в направлении, в котором он находится. Когда игрок коснется экрана, персонаж повернется лицом к месту касания, которое должно заставить тело двигаться в другом направлении.Бурундук Физика: Поворот тела плавно
я могу получить символ столкнуться с сенсорным месте следующим образом:
CGPoint diff = ccpSub(location, self.position);
CGFloat targetAngle = atan2f(diff.y, diff.x);
self.body->a = targetAngle;
Я хочу что-то вдоль этих линий. Получите текущий угол, с которым сталкивается персонаж. Поверните этот угол в единичный вектор. Умножьте этот единичный вектор на max_velocity и примените его к символу. Это должно (теоретически) перемещать персонажа в направлении, с которым он сталкивается с постоянной скоростью?
Это, кажется, чтобы дать мне то, что я хочу:
cpVect rotatedVel = cpvmult(ccpForAngle(self.body->a), MAX_VELOCITY);
self.body->v = cpvlerpconst(self.body->v, rotatedVel, ACCELERATION * dt);
Теперь мне нужно, это способ повернуть направление персонажа медленно в течение долгого времени. Как я могу это сделать?