示例#1
0
void myInit(char *progname)
{
    int width = 600, height = 600;
    float aspect = (float)width / (float)height;
    
    glutInitWindowPosition(0, 0);
    glutInitWindowSize(width, height);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
    glutCreateWindow(progname);
    glClearColor(0.8, 1.0, 1.0, 1.0);
    
    glutKeyboardFunc(myKbd);
    glutSpecialFunc(mySkey);
    glutMouseFunc(myMouse);
    glutMotionFunc(myMotion);
    
    resetview();    //„Éì„É•„ɺ„ÅÆÂàùÊúüÂå?
    
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(30.0, aspect, 1.0, 30.0);
    glMatrixMode(GL_MODELVIEW);
    
    initLighting();
}
void myInit (char *progname)
{
  int width = 500, height = 500;

  glutInitWindowPosition(0, 0);
  glutInitWindowSize( width, height );
  glutInitDisplayMode( GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
  glutCreateWindow(progname);
  glClearColor (0., 0., 0., 1.);

  glutKeyboardFunc(myKbd);

  resetview();

  initLighting();
}
示例#3
0
void myKbd(unsigned char key, int x, int y)
{
    int i;
    switch (key) {
        case '1':
            camera(1);
            break;
        case '2':
            camera(2);
            break;
        case '3':
            camera(3);
            break;
        case '4':
            camera(4);
            break;
        case '5':
            camera(5);
            break;
        case '6':
            camera(6);
            break;
        case '7':
            camera(7);
            break;
            /* w„Ç≠„ɺ„ÅßÈ¢®„ÅÆON/OFFÂàÅEÇäÊõø„Å? */
        case 'w':
            windFlag = !windFlag;
            break;
            /* R„Ç≠„ɺ„Åß„Éì„É•„ɺ„ÅÆ„É™„Ǫ„ÉÅEÉà */
        case 'R':
            resetview();
            break;
            /* r„Ç≠„ɺ„ÅßÈõ®„ÅÆON/OFFÂàÅEÇäÊõø„Å? */
        case 'r':
            cloudFlag = GL_TRUE;
            if (rainFlag2 == GL_TRUE && maxrain >= 10){
                cloudFlag = GL_FALSE;
                rainFlag2 = GL_FALSE;
            }
            break;
        case 't':
            thunderFlag = GL_TRUE;
            break;
        case 'f':
            fallFlag = GL_TRUE;
            break;
        case 'a':
            if (cloudmovingFlag == GL_FALSE)
                alphaFlag = !alphaFlag;
            break;
        case 'g':
            if (grow<5) {
                ++grow;
                t = 0.001;
            }
            if (grow>2 && growleaves<4){
                ++growleaves;
                t2 = 0.001;
            }
            if (grow>1 && growdisks<4){
                ++growdisks;
                t3 = 0.001;
            }
            for (i = 0; i<3; ++i) {
                diffuse4[i] = 0.8*diffuse4[i] + 0.2*diffuse5[i];
                specular4[i] = 0.8*specular4[i] + 0.2*specular5[i];
                ambient4[i] = 0.8*ambient4[i] + 0.2*ambient5[i];
            }
            break;
            /* ESC„Ç≠„ɺ„Åß„Éó„É≠„Ç∞„É©„Ɇ„ÅÆÁµÇ‰∫? */
        case KEY_ESC:
            exit(0);
    }
}