这节我们将读取几个图片,生成一个纹理集,然后让程序循环显示图片。
为了方便,我直接把图片的数量和每个图片的名字保存在一个txt文档里面,方便程序地读取。
如:

在init函数中,打开data.txt,读取图片的数量和图片的名字,然后调用LoadBitmap函数,把所生成的纹理保存在一个容器vector中,然后在Update函数中,控制显示的图片id,从而达到循环显示。
具体的实现很简单,所以就不多说了~
vector<unsigned int> V_ID; //用来保存生成的纹理id
int now,cnt; //now是当前所使用的纹理在vector中的下标
//cnt是用来计时的变量
void Update()
{
cnt++;
if (cnt >= 100) //当cnt加到的时候,换下一张图片
{
now++;
now%=V_ID.size(); //保证now值的正确性
cnt=0; //将cnt值置,开始下一个图片的显示
}
glutPostRedisplay();
}void init()
{
int n,i;
char str[100],file[100];
V_ID.clear(); //清空容器
FILE *fp;
fp=fopen("data/data.txt","r");
fscanf(fp,"%d",&n);
while (n--)
{
fscanf(fp,"%s",str);
sprintf(file,"data/%s",str);
i=LoadBitmap(file);
if (i == -1)

这篇博客介绍了如何在OpenGL中实现循环显示图片并加入淡入淡出效果。作者通过读取txt文件获取图片信息,使用纹理集并在init函数加载到容器中,Update函数控制显示图片ID。利用glColor4f的alpha值和OpenGL的混合功能,创建半透明效果,通过调整alpha值在[0,1]之间实现淡入淡出。"
138817444,17798234,Visual Basic 教师评语管理系统设计与实现,"['VB', 'MIS系统', '数据库管理', '教学辅助工具', '应用程序开发']
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



