使用OpenGL 实现 代码弹幕” 200312225 OpenGL”从上到下,循环反复
时间: 2024-04-30 21:22:18 浏览: 9
以下是简单的OpenGL代码实现弹幕效果:
```
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
int x = 0, y = 0; // 初始位置
int speed = 5; // 移动速度
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0); // 红色
glRasterPos2i(x, y); // 设置文字显示位置
glutBitmapString(GLUT_BITMAP_HELVETICA_18, "200312225 OpenGL"); // 绘制字符串
glutSwapBuffers();
}
void timer(int value) {
x += speed;
if (x > glutGet(GLUT_WINDOW_WIDTH)) {
x = -glutBitmapLength(GLUT_BITMAP_HELVETICA_18, (const unsigned char *)"200312225 OpenGL"); // 循环
}
glutPostRedisplay();
glutTimerFunc(16, timer, 0);
}
int main(int argc, char *argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutCreateWindow("OpenGL");
glutDisplayFunc(display);
glutTimerFunc(0, timer, 0);
glutMainLoop();
return 0;
}
```
在该代码中,我们使用了OpenGL中的`glRasterPos2i`函数来设置文字显示位置,并使用`glutBitmapString`函数来绘制字符串。在计时器函数中,我们不断更新文字位置,并在超出窗口范围后将其循环回来,从而实现弹幕效果。