示例#1
0
bool Physics::startup()
{
    if (Application::startup() == false)
    {
        return false;
    }
	
    glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
    glEnable(GL_DEPTH_TEST);
    Gizmos::create();

    m_camera = FlyCamera(1280.0f / 720.0f, 10.0f);
    m_camera.setLookAt(vec3(30, 30, 30), vec3(0,0,0), vec3(0, 1, 0));
    m_camera.sensitivity = 3;

	m_renderer = new Renderer();
	
	SetUpPhysX();
	SetUpVisualDebugger(); 
	SetUpTutorial1();

	muzzleSpeed = 10000.0f;
	shootTimer = 0.0f;
	shootTimeOut = 0.2f;

    return true;
}
示例#2
0
bool Physics::startup()
{
    if (Application::startup() == false)
    {
        return false;
    }
	
    glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
    glEnable(GL_DEPTH_TEST);
    Gizmos::create();

    m_camera = FlyCamera(1280.0f / 720.0f, 10.0f);
    m_camera.setLookAt(vec3(0, 0, 40), vec3(0), vec3(0, 1, 0));
    m_camera.sensitivity = 3;

	m_renderer = new Renderer();

	m_physics = new PhysicsScene();
	m_physics->gravity = glm::vec3(0, 0, 0);
	m_physics->timeStep = m_timeStep;

	timer = timerLimit;
	shot = false;
	
	int width = 0, height = 0;
	glfwGetWindowSize(m_window, &width, &height);
	aspectRatio = (float)width / (float)height;

	//projectileMotionSetup();
	//rocketEngineSetup();
	collisionDetectionTuteSetup();

    return true;
}
示例#3
0
文件: avatar.c 项目: xetxeberria/VEV
int AdvanceAvatar(Avatar *theAvatar, float step) {

    Camera *thisCamera = theAvatar->cam;
    BSphere *bsph = theAvatar->bsph;
    float newX, newY, newZ;
    Node *rootNode;

    rootNode = RootNodeScene();
    if (theAvatar->walk)
        WalkCamera(thisCamera, step);
    else
        FlyCamera(thisCamera, step);
    return 1;
}
示例#4
0
文件: DIYmain.cpp 项目: L1tta/Physics
bool DIYmain::startup()
{
	if (glfwInit() == false)
	{
		return -1;
	}

	//	DIYPhysicsRocketSetup();
	//DIYPhysicsCollisionTutorial();
	//  SpringPhysicsTutorial();

	window = glfwCreateWindow(1080, 720, "Physics 2D", nullptr, nullptr);

	if (window == nullptr)
	{
		glfwTerminate();
		return -2;
	}

	glfwMakeContextCurrent(window);

	if (ogl_LoadFunctions() == ogl_LOAD_FAILED)
	{
		glfwDestroyWindow(window);
		glfwTerminate();
		return -3;
	}

	glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
	glEnable(GL_DEPTH_TEST);
	Gizmos::create();
	prevTime = 0;

	m_camera = FlyCamera(1280.0f / 720.0f, 10.0f);
	m_camera.setLookAt(vec3(10, 10, 10), vec3(0), vec3(0, 1, 0));
	m_camera.sensitivity = 3;

	//	DIYPhysicsRocketSetup();
	DIYPhysicsCollisionTutorial();
	//  SpringPhysicsTutorial();
	return true;
}
示例#5
0
文件: avatar.c 项目: xetxeberria/VEV2
int AdvanceAvatar(Avatar *theAvatar, float step) {

	Camera *thisCamera = theAvatar->cam;
	BSphere *bsph = theAvatar->bsph;
	float newX, newY, newZ;
	Node *rootNode, *aux;

	rootNode = RootNodeScene();

	// Put here your code
	/* Calcular P' */
	newX = thisCamera->Ex + thisCamera->Dx * step;
	newY = thisCamera->Ey + thisCamera->Dy * step;
	newZ = thisCamera->Ez + thisCamera->Dy * step;

	/* Asignar la nueva posición a la esfera */
	bsph->sphereX = newX;
	bsph->sphereY = newY;
	bsph->sphereZ = newZ;

	aux = CollisionBSphereNode(rootNode, bsph);
	/* Si no hay colisión entre el nodo raíz de la escena y la esfera, avanzar el avatar */
	if(aux == NULL){
		/* Llamar a la función correspondiente dependiendo del valor del "walk" de la cámara */
		if(theAvatar->walk == 1){
			WalkCamera(thisCamera, step);
		}else{
			FlyCamera(thisCamera, step);
		}
	}else{
		printf("¡Colisión!\n");
		//PrintBBox(aux->container_WC);
		return 0;
	}
	return 1;
}
示例#6
0
/*
   Deal with plain key strokes
*/
void HandleKeyboard(unsigned char key,int x, int y)
{
   switch (key) {
   case ESC:                            /* Quit */
   case 'Q':
   case 'q': 
      exit(0); 
      break;
   case 'h':                           /* Go home     */
   case 'H':
      CameraHome(0);
      break;
   case '[':                           /* Roll anti clockwise */
      RotateCamera(0,0,-1);
      break;
   case ']':                           /* Roll clockwise */
      RotateCamera(0,0,1);
      break;
   case 'i':                           /* Translate camera up */
   case 'I':
      TranslateCamera(0,1);
      break;
   case 'k':                           /* Translate camera down */
   case 'K':
      TranslateCamera(0,-1);
      break;
   case 'j':                           /* Translate camera left */
   case 'J':
      TranslateCamera(-1,0);
      break;
   case 'l':                           /* Translate camera right */
   case 'L':
      TranslateCamera(1,0);
      break;
   case '=':
   case '+':
      FlyCamera(1);
      break;
   case '-':
   case '_':
      FlyCamera(-1);
      break;
   case 'w':                           /* Write the image to disk */
   case 'W':
      windowdump = !windowdump;
      break;
   case 'r':
   case 'R':
      record = !record;
      break;
   case '<':
   case ',':
      iterationdepth--;
      if (iterationdepth < 0)
         iterationdepth = 0;
      geometrydirty = REALDIRTY;
      break;
   case '>':
   case '.':
      iterationdepth++;
      geometrydirty = REALDIRTY;
      break;
   }
}