游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: Jackie_cai

为什么不能连续转动?

[复制链接]

0

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
QQ
发表于 2006-1-3 20:10:00 | 显示全部楼层

Re: Re:为什么不能连续转动?

Jackie_cai: Re:为什么不能连续转动?

谢谢这位大哥。这种方法我试过了,但是不行。为了找出具体问题,我把完整的代码列出来。
#include "G...

我根据你第3楼的代码进行了修改,可以连续转动了。下面红色的代码是我添加的。
//-------------------------------------------------------------------------------
#include "GL/glut.h"

#pragma comment( lib, "glut32.lib")

static GLfloat rotateAngle = 0.0;

void TimerFunction(int value)
{
rotateAngle += 3.0;      //这3行代码是从你原来的 display() 中移动过来的
if(rotateAngle > 360)     //这3行代码是从你原来的 display() 中移动过来的
rotateAngle -= 360;     //这3行代码是从你原来的 display() 中移动过来的

glutPostRedisplay();
glutTimerFunc(33,TimerFunction,1);
}

//------------------------------------------
void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}
//------------------------------------------
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glColor3f(1.0, 1.0, 1.0);
glTranslatef(0.0, 0.0, -5.0);
glRotatef(rotateAngle, 0.0, 1.0, 0.0);
glScalef(1.0, 2.0, 1.0);
glutWireCube(1.0);
glFlush();

}
//------------------------------------------
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
               gluPerspective(60.0, 1.0, 1.5, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
//------------------------------------------
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutTimerFunc(33,TimerFunction,1);
glutMainLoop();
return 0;
}

1

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2006-1-5 10:32:00 | 显示全部楼层

Re:为什么不能连续转动?

void display(void)
函数最后加
glutSwapBuffers();

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
改为
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);

1

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2006-1-5 10:49:00 | 显示全部楼层

Re: 为什么不能连续转动?

有个例子

sf_200615104850.rar

2.88 KB, 下载次数:

0

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
QQ
发表于 2006-1-5 21:25:00 | 显示全部楼层

Re: Re:为什么不能连续转动?

MzW: Re:为什么不能连续转动?

void display(void)
函数最后加
glutSwapBuffers();

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
...

这个更改仍然不能连续旋转。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 03:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表