मैं ओपनग्ल + ग्लूट एप्लिकेशन के नियंत्रण के हिस्से के रूप में ऊपर, नीचे, बाएं, दाएं का उपयोग करना चाहता हूं। मैं अपने 'keyboard
' फ़ंक्शन के अंदर की चाबियों का उल्लेख कैसे करूं (जिसे मैं glutKeyboardFunc
पर पास करता हूं)?मैं ग्लूट में कीबोर्ड की दिशात्मक कुंजी कैसे निर्दिष्ट करूं?
5
A
उत्तर
4
आपको glutSpecialFunc की आवश्यकता है।
उदाहरण के लिए -
#include<GL/gl.h>
#include<GL/glut.h>
#include<stdio.h>
void
init(void)
{
/*initialize the x-y co-ordinate*/
glClearColor(0,0,0,0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-320, 319,-240, 239);
glClear (GL_COLOR_BUFFER_BIT);
glFlush();
}
void
catchKey(int key, int x, int y)
{
if(key == GLUT_KEY_LEFT)
printf("Left key is pressed\n");
else if(key == GLUT_KEY_RIGHT)
printf("Right key is pressed\n");
else if(key == GLUT_KEY_DOWN)
printf("Down key is pressed\n");
else if(key == GLUT_KEY_UP)
printf("Up key is pressed\n");
}
int
main(int argc, char *argv[])
{
double x_0, y_0, x_1, y_1;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(640, 480);
glutInitWindowPosition(400, 400);
glutCreateWindow("Special key");
init();
glutSpecialFunc(catchKey);
glutMainLoop();
}
4
अपने कार्यों इन
void handleSpecialKeypress(int key, int x, int y) {
switch (key) {
case GLUT_KEY_LEFT:
isLeftKeyPressed = true;
if (!isRightKeyPressed) {
DO SOMETHING HERE;
}
break;
case GLUT_KEY_RIGHT:
isRightKeyPressed = true;
if (!isLeftKeyPressed) {
DO SOMETHING HERE;
}
break;
}
}
void handleSpecialKeyReleased(int key, int x, int y) {
switch (key) {
case GLUT_KEY_LEFT:
isLeftKeyPressed = false;
break;
case GLUT_KEY_RIGHT:
isRightKeyPressed = false;
break;
}
}
की तरह कुछ होना चाहिए और आप भी अपने main() प्रणाली में इन आह्वान करने के लिए की जरूरत है
glutSpecialFunc(handleSpecialKeypress);
glutSpecialUpFunc(handleSpecialKeyReleased);
- चर isRightK eypressed और isLeftKeyPressed वैश्विक वैरिएबल हैं जिन्हें मैंने परिभाषित किया है।
संबंधित मुद्दे
- 1. मैं NetBeans में पथ निर्दिष्ट कैसे करूं?
- 2. मैं UIScrollView के लिए दिशात्मक लॉक कैसे सक्षम करूं?
- 3. मैं यूनिकोड वर्णों की एक श्रृंखला कैसे निर्दिष्ट करूं
- 4. मैं Matplotlib में कीबोर्ड शॉर्टकट को कैसे अक्षम करूं?
- 5. मैं एएसपी.नेट एमवीसी कस्टम सत्यापन में त्रुटि सदस्य कुंजी कैसे निर्दिष्ट करूं?
- 6. मैं d3.scale.ordinal() में डोमेन कैसे निर्दिष्ट करूं?
- 7. मैं ग्रैडल बिल्ड स्क्रिप्ट में मैवेन प्रॉपर्टी कैसे निर्दिष्ट करूं?
- 8. मैं XML स्कीमा में निरंतर विशेषता कैसे निर्दिष्ट करूं?
- 9. सी में, मैं एक निर्दिष्ट निर्देशिका कैसे प्राप्त करूं?
- 10. मैं symfony2 भंडार में क्वेरी परिणाम कैशिंग निर्दिष्ट कैसे करूं?
- 11. कीबोर्ड छिपाने के लिए कैसे - की - UITextView iPhone - वापसी कुंजी
- 12. मैं डी 3 में प्रारंभिक ज़ूम स्तर कैसे निर्दिष्ट करूं?
- 13. ग्लूट/फ्रीग्लूट से glfw
- 14. मैं रेल में enum निर्दिष्ट और मान्य कैसे करूं?
- 15. मैं VB.net में अस्थिर के बराबर कैसे निर्दिष्ट करूं?
- 16. कीबोर्ड कुंजी आइकन
- 17. दिशात्मक रोशनी
- 18. मैं सार्वजनिक-कुंजी प्रमाणीकरण कैसे सेटअप करूं?
- 19. मैं Winform पर कीबोर्ड इनपुट कैसे पढ़ूं?
- 20. एंड्रॉइड कीबोर्ड कुंजी फ़ॉन्ट कैसे बदलें?
- 21. मैं सी # अज्ञात प्रकारों में "कुंजी" फ़ील्ड कैसे घोषित करूं?
- 22. emacs में विभिन्न कीबोर्ड लेआउट कुंजी बाइंडिंग
- 23. सी # Winforms ऐप में सूचीबॉक्स आइटम की "कुंजी" पर मैं कैसे प्राप्त करूं?
- 24. मैं कैसे कीबोर्ड
- 25. आईपैड कीबोर्ड छिपाएं वापसी कुंजी
- 26. जावा में द्वि-दिशात्मक मानचित्र?
- 27. एंड्रॉइड कीबोर्ड कुंजी पूर्वावलोकन छुपाएं
- 28. आईफोन कीबोर्ड शिफ्ट कुंजी अक्षम
- 29. एंड्रॉइड अक्षम सॉफ्ट कीबोर्ड में एंटर कुंजी
- 30. मैं जेएसएफ प्रस्तुत गुण में 2 अलग-अलग बीन्स की स्थितियों को कैसे निर्दिष्ट करूं?