Glut键盘控制

在Glut中,键盘按键分两种:普通按键与特殊按键。

其中:

①  普通按键为:字母+数字,以及其他可以用ASCII表示的字母。注意ESC(对应ASCII码27)属于普通按键

②  特殊按键为:↑↓←→,PageUp,PageDown,Home,End等

普通按键所使用的按键响应函数为:

void glutKeyboardFunc(void(*func)(unsigned char key, int x, int y));

特殊按键所使用的按键响应函数为:

void glutSpecialFunc(void(*func)(int key, int x, int y));

1. 普通按键响应

//首先定义消息响应函数:
void processNormalKeys(unsigned char key, int x, int y)
{
	switch (key)
	{
	case 27:
		Exit(0);
		break;
	case 'w':
		m_xRotate += 5.0f;
		break;
	default:
		break;
	}
	// 刷新
	glutPostRedisplay();
}
//然后调用:
glutKeyboardFunc(processNormalKeys);

由上面示例代码可知,可以直接使用ASCII对应的数字来代替相应的按键。

若使用'w'这样的格式,注意里面的字母区分大小写。若使用小写,那么CapsLock未按下时按w键有效,CapsLock已按下时按w键无效;使用大写同理。

2. 特殊按键响应

//首先定义消息响应函数:
void processSpecialKeys(unsigned char key, int x, int y)
{
	switch (key)
	{
	case GLUT_KEY_UP:
		m_xRotate -= 5.0f;
		break;
	case GLUT_KEY_DOWN:
		m_xRotate += 5.0f;
		break;
	case GLUT_KEY_LEFT:
		m_yRotate -= 5.0f;
		break;
	case GLUT_KEY_RIGHT:
		m_yRotate += 5.0f;
		break;
	case GLUT_KEY_PAGE_UP:
		m_zRotate -= 5.0f;
		break;
	case GLUT_KEY_PAGE_DOWN:
		m_zRotate += 5.0f;
		break;
	default:
		break;
	}
	// 刷新
	glutPostRedisplay();
}
//然后调用:
glutSpecialFunc(processSpecialKeys);


 附所有的特殊按键:

GLUT_KEY_F1                  F1function key
GLUT_KEY_F2                  F2function key
GLUT_KEY_F3                  F3function key
GLUT_KEY_F4                  F4function key
GLUT_KEY_F5                  F5function key
GLUT_KEY_F6                  F6function key
GLUT_KEY_F7                  F7function key
GLUT_KEY_F8                  F8function key
GLUT_KEY_F9                  F9function key 
GLUT_KEY_F10                F10function key
GLUT_KEY_F11                F11function key
GLUT_KEY_F12                 F12 function key
GLUT_KEY_LEFT              Leftfunction key
GLUT_KEY_RIGHT            Up function key
GLUT_KEY_UP                 Rightfunction key
GLUT_KEY_DOWN            Down function key
GLUT_KEY_PAGE_UP         Page Up function key
GLUT_KEY_PAGE_DOWN    Page Down function key
GLUT_KEY_HOME              Home function key
GLUT_KEY_END                End function key
GLUT_KEY_INSERT                 Insert function key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值