OpenGL-绘制正方形并通过键位控制与定时器实现自动移动

实现效果:

实现步骤:

  1. 首先绘制一个正方体
  2. 首次按键开始移动,并记录移动方向,添加定时器
  3. 定时器根据上次按键方向进行移动

主要函数

 //注册重塑函数 为窗口改变大小而设置的一个回调函数

glutReshapeFunc(changeSize);

//注册显示函数 包含OpenGL 渲染的回调函数

glutDisplayFunc(RenderScene);

//注册特殊函数 这里进行键位检测

glutSpecialFunc(SpecialKeys);

//需要在函数中再调用一次,才能保证循环

glutTimerFunc(33,timerProc,1);

数据结构准备

main函数

主要进行了glut 的初始化以及相关函数的注册

setupRC函数

进行的是着色器的初始化 以及 GLBatch 的初始化

SpecialKeys 函数 获取键位方向以及位置偏移量

主要做的是数据的处理,根据键位方向,我们进行顶点数组中的坐标更改,通过重新绘制实现移动效果

RenderScene函数

glutPostRedisplay 提交重新渲染的时候调用RenderScene函数,根据偏移量进行矩阵变换

timerProc 函数与 SpecialKeys 非常接近只是做了简单的判断,SpecialKeys 时我们知道了前进方向,通过glutTimerFunc注册time 我们实现了定时器循环功能,

SpecialKeys 可修改为

以上是 OpenGL-绘制正方形并通过键位控制与定时器实现自动移动 的全部内容, 来源链接: utcz.com/a/30728.html

回到顶部