一、主要流程
基本图元连接方式
主要需实现两部分
1)正方形绘制
2)键盘方向键控制正方形走向,并处理好边缘问题
正方形绘制
- 定义顶点要坐标轴的距离
GLfloat blockSize = 0.1f; //为在一个规范坐标下的一个相对值 [-1, 1]
- 定义正方形4个顶点坐标
GLfloat vVerts[] = {
-blockSize,-blockSize,0.0f,
blockSize,-blockSize,0.0f,
blockSize,blockSize,0.0f,
-blockSize,blockSize,0.0f
};
- 修改setupRC函数中图元的连接方式
//修改为GL_TRIANGLE_FAN ,4个顶点
triangleBatch.Begin(GL_TRIANGLE_FAN, 4);
键位控制效果
有两种实现方式
- 更新坐标方式
- 矩阵方式
手动更新坐标方式,适合顶点少的时候,一个个去更新,要是顶点较多的时候就需要一个可以批量更新的方式,通过矩阵实现多个顶点同时更新
更新坐标方式
执行流程:
假设正方形如下图:
- 定义移动步长
GLfloat stepSize = 0.025f; //为在一个规范坐标下的一个相对值 [-1, 1]
- 根据键位方向,更新相对移动点坐标,计算出其他几个点的坐标
- 做碰撞处理,防止图片移到边框外边
防碰撞处理:
具体实现代码:
void SpecialKeys(int key, int x, int y){
GLfloat stepSize = 0.025f;
GLfloat blockX = vVerts[0];
GLfloat blockY