openGL获取键盘输入的问题

alan19931103 2013-10-14 09:58:27
我想获取键盘输入,方向键和aswd都可以获得同样的效果


void keyEvent(unsigned char key,int x,int y){
switch (key){
case 's':
case GLUT_KEY_DOWN:
printf("down\n");
break;
case 'w':
case GLUT_KEY_UP:
printf("up\n");
break;
case 'a':
//case GLUT_KEY_LEFT:
printf("left\n");
break;
case 'd':
case GLUT_KEY_RIGHT:
printf("right\n");
break;
}
}


现在的问题是只有aswd的情况下没有问题,但是方向键的那个好像没办法获取到。

而且更要命的是GLUT_KEY_LEFT如果取消注释的话,编译提示error C2196: case value '100' already used
就是case 'd': 那行
难道d和GLUT_KEY_LEFT都是100???
是哪里错了不?
...全文
524 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-10-15
  • 打赏
  • 举报
回复
搜网络教程“学OpenGL编3D游戏”。
图灵狗 2013-10-15
  • 打赏
  • 举报
回复
用unsigned char无法表达所有的按键,可以参考http://blog.csdn.net/gamesdev/article/details/8113155的做法。
引用 楼主 alan19931103 的回复:
我想获取键盘输入,方向键和aswd都可以获得同样的效果

void keyEvent(unsigned char key,int x,int y){
	switch (key){
		case 's':
		case GLUT_KEY_DOWN:
			printf("down\n");
			break;
		case 'w':
		case GLUT_KEY_UP:
			printf("up\n");
			break;
		case 'a':
		//case GLUT_KEY_LEFT:
			printf("left\n");
			break;
		case 'd':
		case GLUT_KEY_RIGHT:
			printf("right\n");
			break;
	}
}
现在的问题是只有aswd的情况下没有问题,但是方向键的那个好像没办法获取到。 而且更要命的是GLUT_KEY_LEFT如果取消注释的话,编译提示error C2196: case value '100' already used 就是case 'd': 那行 难道d和GLUT_KEY_LEFT都是100??? 是哪里错了不?
logiciel 2013-10-15
  • 打赏
  • 举报
回复
'd'的ASCII码是100,GLUT_KEY_LEFT也是100。

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧