Показать сообщение отдельно
Старый 21.09.2011, 19:35   #3
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Цитата:
Сообщение от SilverIce Посмотреть сообщение
> float angl = spawnedCreature->GetOrientation() * 180 / M_PI;

радианы переводите в градусы. зачем ?
sin/cos работают с радианами
Там вроде погрешность идет.
Я кое что накалякал тут на бумашке, как буду дома прийду и проверю, потом покажу

add:
Сделал вот так:
Код:
                    float angl = angle * 180 / M_PI;
                    if (angl < 90)
                        spawnedCreature->GetMotionMaster()->MovePoint(0, spawnedCreature->GetPositionX() + 5*cos(angl), spawnedCreature->GetPositionY() + 5*sin(angl), spawnedCreature->GetPositionZ());
                    else if (angl < 180)
                        spawnedCreature->GetMotionMaster()->MovePoint(0, spawnedCreature->GetPositionX() - 5*cos(angl), spawnedCreature->GetPositionY() + 5*sin(angl), spawnedCreature->GetPositionZ());
                    else if (angl < 270)
                        spawnedCreature->GetMotionMaster()->MovePoint(0, spawnedCreature->GetPositionX() - 5*cos(angl), spawnedCreature->GetPositionY() - 5*sin(angl), spawnedCreature->GetPositionZ());
                    else
                        spawnedCreature->GetMotionMaster()->MovePoint(0, spawnedCreature->GetPositionX() + 5*cos(angl), spawnedCreature->GetPositionY() - 5*sin(angl), spawnedCreature->GetPositionZ());
Но что-то все равно по диагонали бегут. Я уже хз что им ещё нада. На бумаге вроде все ровно получается, а на деле...

Последний раз редактировалось HuntsMan; 21.09.2011 в 21:08.
HuntsMan вне форума   Ответить с цитированием