即时通讯不知道主题是否说,但我想要做的是即使没有释放鼠标左键,也能够使用多个MouseFunc条目。
在当前状态下,整个程序一直卡住,直到释放左键。即使没有释放鼠标按钮,是否可以导致继续的GLUT MouseFunc条目?
回答
见glutPassiveMotionFunc
http://www.opengl.org/resources/libraries/glut/spec3/node51.html
示例代码手册:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <GL/glut.h>
int mouse_x;
int mouse_y;
void draw_square(float s)
{
s /= 2.;
GLfloat v[] = {
-s, -s,
s, -s,
s, s,
-s, s
};
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, v);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
}
void display(void)
{
int width, height;
width = glutGet(GLUT_WINDOW_WIDTH);
height = glutGet(GLUT_WINDOW_HEIGHT);
glClearColor(0.3, 0.3, 0.3, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, width, 0, height, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
/* mouse_y is from window top */
glTranslatef(mouse_x, height - mouse_y, 0);
glColor4f(1.0, 0.0, 0.0, 1.0);
draw_square(16);
glutSwapBuffers();
}
void mouse_motion(int x, int y)
{
mouse_x = x;
mouse_y = y;
glutPostRedisplay();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutCreateWindow("Mouse Motion");
glutDisplayFunc(display);
glutMotionFunc(mouse_motion);
glutPassiveMotionFunc(mouse_motion);
mouse_x = mouse_y = 0;
glutMainLoop();
}
GlutPassiveMotionFunc不处理'OnMouseClick'事件,只有x,y changings – 2012-03-10 19:53:48
@igalk:然后查看glutMotionFunc,在相同的手册页中介绍。使用事件处理函数更新变量并注册一个空闲函数,该函数将这些变量的值处理为绘制下一帧的状态,然后调用glutPostRedisplay。 – datenwolf 2012-03-10 22:09:42
我不太确定我是否跟着你,你能详细解释一下吗? – 2012-03-11 20:43:23
- 1. 即使没有释放鼠标按钮,释放事件也会触发。 WP7
- 2. GLUT鼠标按钮向下
- 3. StateBased Java Game - 如何判断鼠标按钮是否被释放?
- 4. 即使我有语法错误,是否可以继续使用瓶重装
- 5. 即使按下iphone中的HOME按钮后,我想继续播放音乐吗?
- 6. 即使即使鼠标按钮被按下,C#触发MouseEnter
- 7. 如何检测两个鼠标按钮是否被同时释放?
- 8. 如何判断鼠标按钮是否已在窗口外释放?
- 9. 检查HTML按钮是否被释放
- 10. WebdriverIO:按下按钮,移动鼠标然后释放?
- 11. 是否可以用鼠标使用vim
- 12. 单击鼠标以继续蟒蛇2
- 13. 即使按下主页按钮,如何继续运行IntentService
- 14. 当释放物品上的鼠标按钮时,使弹出窗口关闭
- 15. Tkinter按钮是否可以有孩子?
- 16. Gtk/GtkD检测窗口大小的鼠标按钮释放?
- 17. 是否可以释放UIWebView的内存?
- 18. 鼠标按下并释放窗口
- 19. 即使先决条件失败,Makefile目标是否可以调用命令?
- 20. 是否可以有一个可以切换音频播放状态的按钮
- 21. 是可以控制鼠标的附加按钮jQuery中
- 22. 是否有可能继续执行即使“期待”不匹配任何
- 23. 按回车后继续在C中的是/否后继续
- 24. [自动释放]是否可以接受?
- 25. 是否可以在WordPress中的HTML按钮中添加“无后续”标签
- 26. 有没有办法设置一个选项,即使有错误也会导致PostgreSQL脚本继续运行?
- 27. 继续计数按钮
- 28. 为什么触发放松继续的按钮会立即消失?
- 29. 检查按钮/图片上的鼠标按钮是否已关闭,并在每隔几秒钟后继续执行一个功能,直到按钮被按下?
- 30. 是否可以将文本放在HTML按钮上的3D按钮?
我们可以看到一些代码吗? – 2012-03-10 19:06:28
OpenGL不处理用户输入。 OpenGL只绘制事物。 – datenwolf 2012-03-10 19:08:08
Nicol Bolas:没有什么可以发布的,因为我不知道应该写什么代码,我知道只有当其中一个按钮被释放时,MouseFunc才会退出。 – 2012-03-10 19:54:49