天地之灵学习小组
我们学习小组的OpenGL学习笔记 大家一定要互相折磨呀~~
posts - 150,  comments - 156,  trackbacks - 0
这段程序就是画了一个三角形,想让键盘控制它来上下左右运动,但是无论怎么钦按钮他都不运动,非常郁闷,请求支援。谢谢
#include <stdlib.h>
#include 
<gl/glut.h>
#include 
<windows.h>
static GLfloat x=0.0;
static GLfloat y=0.0;
void init()
{
    glClearColor(
0.0,0.0,0.0,0.0);
}

void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(
0.2f,0.8f,0.6f);
    glBegin(GL_TRIANGLES);
        glVertex2f(
0.0+x,0.0+y);
        glVertex2f(
0.5+x,0.0+y);
        glVertex2f(
0.5+x,0.5+y);
    glEnd();
    glutSwapBuffers();
    glFlush();
}

void keyboard(unsigned char key,int x,int y)
{
    
switch(key)
    
{
    
case 'd':
    
case 'D':
        x
+=0.1;
        
if(x>0.5)
            x
=0.5;
        glutPostRedisplay();
        
break;
    
case 'a':
    
case 'A':
        x
-=0.1;
        
if(x<-1.0)
            x
=-1.0;
        glutPostRedisplay();
        
break;
    
case 'w':
    
case 'W':
        y
+=0.1;
        
if(y>0.5)
            y
=0.5;
        glutPostRedisplay();
        
break;
    
case 's':
    
case 'S':
        y
-=0.1;
        
if(y<-1.0)
            y
=-1.0;
        glutPostRedisplay();
        
break;
    
case 27:
        exit(
0);
        
break;
    
default:
        
break;
    }

}

void reshape(int w,int h)
{
    glViewport(
0,0,(GLsizei)w,(GLsizei)h);
}

int main(int argc,char *argv[])
{
    glutInit(
&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE
|GLUT_RGB);
    glutInitWindowSize(
500,500);
    glutInitWindowPosition(
100,100);
    glutCreateWindow(argv[
0]);
    init();
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutReshapeFunc(reshape);
    glutMainLoop();
    
return 0;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(6)

随笔分类(149)

随笔档案(150)

同道中人

搜索

  •  

积分与排名

  • 积分 - 45982
  • 排名 - 476

最新随笔

最新评论

阅读排行榜

评论排行榜