void MainWindow::standartMove(fpoint from, fpoint to) { syncNap(getAngle(input->coord.x, input->coord.y, to.x, to.y), getYAngle(sqrt(sqr(input->coord.x - to.x) + sqr(input->coord.y - to.y) + sqr(input->coord.h - to.h)), input->coord.h, to.h)); elementarMove(to); superDfs(); widget->botLast += 100.0 / input->n / input->n / input->h / 2; syncNap(getAngle(input->coord.x, input->coord.y, from.x, from.y), getYAngle(sqrt(sqr(from.x - input->coord.x) + sqr(from.y - input->coord.y) + sqr(from.h - input->coord.h)), input->coord.h, from.h)); elementarMove(from); }
/* Update */ void MediKitObject::update() { setYAngle(getYAngle() + INCREMENT_Y_ANGLE); if (!yPositionUpdated) { yPositionUpdated = true; setYPosition(getYPosition() + 1.0f); } }
void mouseMove(SDL_Event event,Data*data){ if(event.motion.state & SDL_BUTTON_LMASK){ float sensitivity = 0.01; auto orbitCamera = std::dynamic_pointer_cast<OrbitCamera>(data->cameraTransform); if(orbitCamera){ orbitCamera->setXAngle(orbitCamera->getXAngle() + event.motion.yrel*sensitivity); orbitCamera->setYAngle(orbitCamera->getYAngle() + event.motion.xrel*sensitivity); } } if(event.motion.state & SDL_BUTTON_RMASK){ float step = 0.01; auto orbitCamera = std::dynamic_pointer_cast<OrbitCamera>(data->cameraTransform); if(orbitCamera){ orbitCamera->setDistance(orbitCamera->getDistance() + event.motion.yrel*step); } } if(event.motion.state & SDL_BUTTON_MMASK){ auto orbitCamera = std::dynamic_pointer_cast<OrbitCamera>(data->cameraTransform); orbitCamera->addXPosition(+orbitCamera->getDistance()*event.motion.xrel/data->window.width*2.); orbitCamera->addYPosition(-orbitCamera->getDistance()*event.motion.yrel/data->window.width*2.); } }
void mouseMove(SDL_Event event,Data*data){ bool recompute = false; if(event.motion.state & SDL_BUTTON_LMASK){ float sensitivity = 0.01; auto orbitCamera = std::dynamic_pointer_cast<OrbitCamera>(data->cameraTransform); if(orbitCamera){ orbitCamera->setXAngle(orbitCamera->getXAngle() + event.motion.yrel*sensitivity); orbitCamera->setYAngle(orbitCamera->getYAngle() + event.motion.xrel*sensitivity); recompute = true; } } if(event.motion.state & SDL_BUTTON_RMASK){ float step = 0.1; auto orbitCamera = std::dynamic_pointer_cast<OrbitCamera>(data->cameraTransform); if(orbitCamera){ orbitCamera->setDistance(orbitCamera->getDistance() + event.motion.yrel*step); recompute = true; } recompute = true; } if(recompute) data->mvp = data->cameraProjection->getProjection()*data->cameraTransform->getView(); }
/* Render */ void MediKitObject::render(GameData &data) { if (isPickedUp()) return; data.renderModel(GameData::MEDIKIT_MODEL_INDEX, getXPosition(), getYPosition(), getZPosition(), getYAngle(), 0.0f, 2.0f); if (DEBUG) renderBoundingCilinder(); }
void Obstacle::render(GameData &data) { if (obsType == COLUMN) data.renderModel(GameData::COLUMN_MODEL_INDEX, getXPosition(), getYPosition(), getZPosition(), getYAngle(), 0.0f, 2.0f); else if (obsType == BARREL) data.renderModel(GameData::BARREL_MODEL_INDEX, getXPosition(), getYPosition(), getZPosition(), getYAngle(), 0.0f, 2.0f); if (DEBUG) renderBoundingCilinder(); }