Цитата:
Сообщение от 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());
Но что-то все равно по диагонали бегут. Я уже хз что им ещё нада. На бумаге вроде все ровно получается, а на деле...