void cCamera::Update(cInput *Input) { int mx,my; int middleX,middleY; float angle; Input->GetMousePosition(&mx,&my); // Move the camera's view by the mouse middleX = width >> 1; middleY = height >> 1; if(mx!=middleX) { angle = ((float)(middleX - mx)) / 50.0f; RotateY(angle); } if(my!=middleY) { angle = ((float)(middleY - my)) / 50.0f; RotateX(angle); } if(Input->KeyIsDown(GLUT_KEY_UP)) MoveForwards(-speed); if(Input->KeyIsDown(GLUT_KEY_DOWN)) MoveForwards( speed); if(Input->KeyIsDown(GLUT_KEY_LEFT)) StrafeRight(-speed); if(Input->KeyIsDown(GLUT_KEY_RIGHT)) StrafeRight( speed); }
void cPlayer::Update(unsigned char keys[], int mouseX, int mouseY, int *map) { this->map = map; if (keys['w']) MoveForwards(-speed); if (keys['s']) MoveForwards(speed); if (keys['a']) StrafeRight(-speed); if (keys['d']) StrafeRight(speed); if (keys[' ']) Jump(); }
void cCamera::Update(bool keys[],int mouseX,int mouseY, object *plane) { float angle; float alfa; Map = plane; if(mouseX!=middleX) { angle = (middleX - mouseX) / 50.0f; RotateY(angle); } if(mouseY!=middleY) { angle = (middleY - mouseY) / 50.0f; RotateX(angle); } if (keys['w']) MoveForwards(-speed); if (keys['s']) MoveForwards(speed); if (keys['a']) StrafeRight(-speed); if (keys['d']) StrafeRight(speed); if (keys[' ']) Jump(); // JUMP & GRAVITY if (jumping) { jump_alfa += JUMP_STEP; if (jump_alfa == 180) { jumping = false; Position.y = jump_y; } else { alfa = ((float)jump_alfa) * 0.017453f; Position.y = jump_y + (int)(((float)JUMP_HEIGHT) * sin(alfa)); if (jump_alfa > 90) { //Over floor? jumping = !CollidesMap(GetCollider(), Map); } } } else { //Over floor? if (!CollidesMap(GetCollider(), Map)) Position.y -= (2 * speed); } }
void PlayerCamera::UpdateCamera(float inTimeDelta) { D3DXMatrixRotationY(&tmpMat, (_pInput->_mouseState).lX / 300.0f); D3DXVec3TransformCoord(&_right, &_right, &tmpMat); D3DXVec3TransformCoord(&_look3, &_look3, &tmpMat); D3DXMatrixRotationAxis(&tmpMat, &_right, (_pInput->_mouseState).lY / 300.0f); D3DXVec3TransformCoord(&_up, &_up, &tmpMat); D3DXVec3TransformCoord(&_look3, &_look3, &tmpMat); if( _pInput->IsWPressed() ) { MoveForwards(inTimeDelta); } if( _pInput->IsSPressed() ) { MoveBackwards(inTimeDelta); } if( _pInput->IsAPressed() ) { StrafeLeft(inTimeDelta); } if( _pInput->IsDPressed() ) { StrafeRight(inTimeDelta); } _position4.x = _position3.x; _position4.y = _position3.y; _position4.z = _position3.z; _position4.w = 1.0f; _look4.x = _look3.x; _look4.y = _look3.y; _look4.z = _look3.z; _look4.w = 1.0f; UpdateViewMatrix(); D3DXMatrixMultiply(&_viewProjectionMatrix , &_viewMatrix, &_projectionMatrix); }
/*! Move in the backward direction. */ void Camera::MoveBackwards ( GLfloat Distance ) { MoveForwards( -Distance ); }