这一篇基本上是从Nehe的第7课改编而来的,我将他的Win32代码改写为MFC框架下来实现。

第一个遇到的问题就是MFC窗口中如何响应键盘消息,搜索了下资料,发现只需要重载PreTranslateMessage函数就可以让窗口监听按键消息了。

OpenGL中的光照和键盘控制BOOL COpenGLDemoView::PreTranslateMessage(MSG* pMsg) 

为了监视按键的情况,增设了下面几个变量来负责按键的控制:

OpenGL中的光照和键盘控制    GLboolean bLighting;//是否启用光照 
OpenGL中的光照和键盘控制
    bool lPressed;//’L’键是否按下
OpenGL中的光照和键盘控制
    bool fPressed;//’F’键是否按下
OpenGL中的光照和键盘控制

目的是防止用户长时间按住一个键不动(例如‘L’不动,从而导致光照持续地开关)这种情况。

OpenGL中的光照和键盘控制    GLfloat xspeed;                                    // X 旋转速度
OpenGL中的光照和键盘控制
    GLfloat yspeed;                                    // Y 旋转速度
OpenGL中的光照和键盘控制
    GLfloat    z;                                // 深入屏幕的距离
OpenGL中的光照和键盘控制

这几个变量是让用户用来增减旋转速度和Z轴深度用的。

OpenGL中的光照和键盘控制void COpenGLDemoView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 

具体的绘制代码如下:

OpenGL中的光照和键盘控制int COpenGLDemoView::DrawGLScene()                                   

最后效果图如下:

OpenGL中的光照和键盘控制

相关文章:

  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-26
猜你喜欢
  • 2022-12-23
  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
  • 2021-10-24
相关资源
相似解决方案