PDA

View Full Version : استفاده از كليدهاي جهت دار در opengl



loverman127
جمعه 01 دی 1391, 12:14 عصر
سلام دوستان
اگه بخوام از كليدهاي جهت دار راست . چپ . بالا و پايين در opengl استفاده كنم . بايد چكار كنم !؟

براي مثال به اين كد دقت كنيد :


void keyboard(unsigned char key, int x, int y)
{
cout << x << " " << y << endl;
switch (key) {
case 'w':
case 'W':
exercise();
break;


براي مثال اگه بخوام بجاي حرف w كاربر دكمه چپ يا راست رو بزنه . معادلش چي ميشه؟! . ايا بايد كد اسكيشو وارد كنم ؟!

ممنون ميشم راهنماييم كنيد :بوس:

Ananas
جمعه 01 دی 1391, 15:02 عصر
سلام.
تو این تابع دستوری بنویس تا مقدار key رو تبدیل به نوشته کنه و تو یک دیالوگ نمایش بده. بعد برنامه رو اجرا کن و کلیدی رو که می خوای بزن و ببین چه عددی رو پیغام میده. بعد دوباره به برنامه برگرد و داخل کد او عدد رو به ساختار سویچ اضافه کن.

mohammadali1375
جمعه 01 دی 1391, 15:53 عصر
در کل اینپوت خود open gl خیلی خوب نیست. من از sdl استفاده میکنم

ahmadasm
جمعه 01 دی 1391, 16:30 عصر
سلام
دوست عزیز همون طور که خودت گفتی باید کد اسکی رو وارد کنی البته کد اسکی توسعه یافته

sanan1368
یک شنبه 10 دی 1391, 21:59 عصر
#define KEYDOWN(vkcode) (GetAsyncKeyState(vkcode)& 0x8000) ? 1:0
void mySpecialKeyboardFunc(int key, int x, int y){
if (key == GLUT_KEY_F1)
{
fullscreen = !fullscreen;
if (fullscreen)
glutFullScreen();
else{
glutReshapeWindow(WIDTH, HEIGHT);
glutPositionWindow(50, 50);
}
}
if(KEYDOWN(VK_RIGHT)){
Xpos += 2.;
}
if(KEYDOWN(VK_LEFT)){
Xpos -= 2.;
}
if(KEYDOWN(VK_UP)){
Ypos += 2.;
}
if(KEYDOWN(VK_DOWN)){
Ypos -= 2.;
}
}

sanan1368
یک شنبه 10 دی 1391, 22:02 عصر
#define KEYDOWN(vkcode) (GetAsyncKeyState(vkcode)& 0x8000) ? 1:0
void mySpecialKeyboardFunc(int key, int x, int y){
if (key == GLUT_KEY_F1)
{
fullscreen = !fullscreen;
if (fullscreen)
glutFullScreen();
else{
glutReshapeWindow(WIDTH, HEIGHT);
glutPositionWindow(50, 50);
}
}
if(KEYDOWN(VK_RIGHT)){
Xpos += 2.;
}
if(KEYDOWN(VK_LEFT)){
Xpos -= 2.;
}
if(KEYDOWN(VK_UP)){
Ypos += 2.;
}
if(KEYDOWN(VK_DOWN)){
Ypos -= 2.;
}
}