problem with glutKeyboardFunc(keyboard);

Discussion in 'C++' started by dathatreya, Apr 17, 2008.

  1. dathatreya

    dathatreya New Member

    Joined:
    Apr 1, 2008
    Messages:
    7
    Likes Received:
    0
    Trophy Points:
    0
    I'm using opengl with MFC for developing the 3d application.Here the problem is if I use glutKeyboardFunc(keyboard) both the objects(room and cube)are moving but I want to make move for onlly cube.Here I'm giving the code can anyone suggest how to make movement for only cube.

    Code:
    
    void MFCOpenGL:isplay(void)
    {
    
    glDrawBuffer(GL_FRONT_LEFT);
    //glColor3f(1, 1, 1);
    glClearColor(1,1,1,1);//set the background color to black
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);
    
    glBegin(GL_QUADS);
    glColor3d(1.0, 0.0, 0.0);
    glVertex2d(0.0, 0.0);
    glVertex2d(2.4, -0.35);
    glVertex2d(2.45, 2.5);
    glVertex2d(0.0, 2.7);
    glEnd();
    
    
    glBegin(GL_QUADS);
    glColor3d(0.0, 0.0, 1.0);
    glVertex2d(-2.5, -0.;
    glVertex2d(0.0, 0.0);
    glVertex2d(0.0, 2.7);
    glVertex2d(-2.5, 2.0);
    glEnd();
    
    
    glBegin(GL_QUADS);
    glColor3d(0.0, 0.0, 0.0);
    glVertex2d(-2.5, -0.;
    glVertex2d(-0.3, -2.0);
    glVertex2d(2.4, -0.35);
    glVertex2d(0.0,0.0);
    glEnd();
    
    glColor3f(0.0, 1.0, 1.0);
    glutSolidCube(0.5);
    glutSwapBuffers();
    glutPostRedisplay();//end of insertion
    }
    
    void MFCOpenGL::Resize(int width,int height)
    {
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0, (float)width / (float)height, 0.1, 1000.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    // Set the viewing position and orientation
    gluLookAt(
    0.0, 0.0,10.0, // eye location
    0.0, 0.0, 1.0, // center location
    0.0, 1.0, 0.0); // up vector
    }
    
    void MFCOpenGL::keyboard(int key, int x, int y)
    {
    switch (key)
    {
    case 'a':
    case 'A':
    glTranslatef(-1.0, 0.0, 0.0);
    
    break;
    
    case 'd':
    case 'D':
    glTranslatef(1.0, 0.0, 0.0);
    break;
    
    case 'w':
    case 'W':
    glTranslatef(0.0, 0.0, 1.0);
    break;
    
    case 's':
    case 'S':
    glTranslatef(0.0, 0.0, -1.0);
    break;
    }
    }
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice