
xEntityAddCapsuleShape(camera,20,5,5) ;//тут примерные значения с ними у вас может и не работать
xEntitySetFriction(camera,0) ;
xEntitySetAngularFactor(camera,0,1.0,0) ;
xEntityDisableSleeping(camera);
while(не выход из цикла)/тут сами понимаете как надо
{
...
//чтобы ходить юзаешь не moveEntity
int spx = xMouseXSpeed();
int spy = xMouseYSpeed();
xMouseMove(xGraphicsWidth()/2, xGraphicsHeight()/2);
xTurnEntity(camera, spy,-spx,0);
xRotateEntity(camera, xEntityPitch(camera), xEntityYaw(camera),0);
xEntitySetLinearVelocity(camera,0,0,0);//перемещение
xEntitySetAngularVelocity(camera,0,0,0);//вращение
float y = xEntityYaw(camera, true);
//нажатие вперед
xEntitySetLinearVelocity(camera,-10*sin(y*3.14/180),0,10*cos(y*3.14/180));
//нажатие вниз
xEntitySetLinearVelocity(camera,10*sin(y*3.14/180),0,-10*cos(y*3.14/180));
//нажатие влево
float velx = xEntityGetLinearVelocityX(camera);//нужно если мы идем вперед или назад
float velz=xEntiyGetLinearVelocityZ(camera);//нужно если мы идем вперед или назад
xEntitySetLinearVelocity(camera,velx+(-10*cos(y*3.14/180)),0,velz+(-10*sin(y*3.14/180)));
//нажатие вправо
float velx = xEntityGetLinearVelocityX(camera);//нужно если мы идем вперед или назад
float velz=xEntiyGetLinearVelocityZ(camera);//нужно если мы идем вперед или назад
xEntitySetLinearVelocity(camera,velx+(10*cos(y*3.14/180)),0,velz+(10*sin(y*3.14/180)));
//гравитация
float velx = xEntityGetLinearVelocityX(camera);//нужно если мы идем вперед или назад
float velz=xEntiyGetLinearVelocityZ(camera);//нужно если мы идем вперед или назад
xEntitySetLinearVelocity(camera,velx,-9,velz);