Kamera przy loku : __________________ if (/*(Pressed(VK_RBUTTON)) ||*/ (Pressed(VK_F4))) { //ABu 180404 powrot mechanika na siedzenie Camera.Reset(); double dt= GetDeltaTime(); if (Controlled) { Camera.Pos= Train->pMechPosition; //Train.GetPosition1(); Camera.Roll= atan(Train->pMechShake.x*Train->fMechRoll); //hustanie kamery na boki Camera.Pitch-= atan(Train->vMechVelocity.z*Train->fMechPitch); //hustanie kamery przod tyl if (Train->DynamicObject->MoverParameters->CabNo==0) // JEZELI W PRZEDZIALE MASZYNOWYM Camera.LookAt= Train->pMechPosition+Train->GetDirection(); // PATRZ SIE NA COS TAM else Camera.LookAt= Train->pMechPosition+Train->GetDirection()*Train->DynamicObject->MoverParameters->CabNo; Train->pMechOffset.x=Train->pMechSittingPosition.x; Train->pMechOffset.y=Train->pMechSittingPosition.y; Train->pMechOffset.z=Train->pMechSittingPosition.z; if (FreeFlyModeFlag) { ff = true; //org Camera.Pos= Train->pMechPosition+Train->GetDirection()*5+vector3(3,3,3); //org Camera.LookAt= Train->pMechPosition+Train->GetDirection()*-1; //org //Zeby nie bylo numerow z 'fruwajacym' lokiem - konsekwencja bujania pudla //org Train->DynamicObject->ABuSetModelShake(vector3(0,0,0)); Train->DynamicObject->bDisplayCab= false; Camera.Pos.x= Train->pMechPosition.x+3.2; // 3.0 Camera.Pos.y= Train->pMechPosition.y-0.5; // 0.5 Camera.Pos.z= Train->pMechPosition.z-0.0; Camera.LookAt= Train->pMechPosition+Train->GetDirection()*-1; Train->DynamicObject->ABuSetModelShake(vector3(0,0,0)); Train->DynamicObject->bDisplayCab= false; } else { ff = false; Train->DynamicObject->bDisplayCab= true; } } } _______________________ tak jest ________ if ((Pressed(VK_RBUTTON)) || (Pressed(VK_F4))) { //ABu 180404 powrot mechanika na siedzenie Camera.Reset(); double dt= GetDeltaTime(); if (Controlled) { Camera.Pos= Train->pMechPosition/Train.GetPosition1(); Camera.Roll= atan(Train->pMechShake.x*Train->fMechRoll); //hustanie kamery na boki Camera.Pitch-= atan(Train->vMechVelocity.z*Train->fMechPitch); //hustanie kamery przod tyl if (Train->DynamicObject->MoverParameters->CabNo==0) Camera.LookAt= Train->pMechPosition+Train->GetDirection(); else //patrz w strone wlasciwej kabiny Camera.LookAt= Train->pMechPosition+Train->GetDirection()*Train->DynamicObject->MoverParameters->CabNo; Train->pMechOffset.x=Train->pMechSittingPosition.x; Train->pMechOffset.y=Train->pMechSittingPosition.y; Train->pMechOffset.z=Train->pMechSittingPosition.z; if (FreeFlyModeFlag) { Camera.Pos= Train->pMechPosition+Train->GetDirection()*5+vector3(3,3,3); Camera.LookAt= Train->pMechPosition+Train->GetDirection()*-1; //Zeby nie bylo numerow z 'fruwajacym' lokiem - konsekwencja bujania pudla Train->DynamicObject->ABuSetModelShake(vector3(0,0,0)); Train->DynamicObject->bDisplayCab= false; } else Train->DynamicObject->bDisplayCab= true; } }