У меня есть программа, которая перемещает объект одним щелчком мыши. Я использую gluUnProject, и иногда, когда я щелкаю куда-то, объект движется не так, как мне хочется, мое уравнение иногда работает нормально, но иногда оно не работает, и я думаю,как-то вращая объект и получая x и z неправильно ... так вот как я делаю это
я инициализирую эти 2 переменные следующим образом
PosP = CVector(20.0,20.0,-30);//PosP is the Starting Position for the char
oldPos = PosP;//PosP is the Position I am modifying when mouse is clicked
так что когда я нажимаю, я получаю PosPкак это
gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ);
std::cout<< posX<<" "<<posY<<" "<<posZ<<std::endl;//printing the results to check everything's fine
PosP.x = posX;
PosP.z = posZ;
все это на функции рендеринга, поэтому каждый кадр делает 1 цикл
Char(oldPos);
if((int)oldPos.x != (int)PosP.x)
{
if((int)PosP.x <= 0)
{
oldPos.x--;//Checking if posP.x < 0 then its a negative value and decrement
}
else
{
oldPos.x++;//Checking if posP.x < 0 then its a positive value and increment
}
}
if((int)oldPos.z != (int)PosP.z)
{
if((int)PosP.z <= 0)
{
oldPos.z--;
}
else
{
oldPos.z++;
}
}
хорошо, я знаю, что ошибка сейчас, но я не знаю, как ее решитьдело в том, что объект движется, что бы ему ни оставалось, перемещаться по x или z случайным образом. lol какие-либо идеи?