كيف يمكنني معرفة ما إذا كان هناك زر مضغوط في OpenGL/Glut؟(لينكس)
سؤال
هذه مشكلة مماثلة: وصلة
والتي تم حلها عن طريق استدعاء GetAsyncKeyState().على الرغم من أن كل شيء على ما يرام ومدهش، إلا أنني بحاجة إلى بديل Linux.أريد أن أعرف إذا كان هناك زر محتجز لأسفل، وليس مجرد الضغط عليه (بسبب تأخير المخزن المؤقت للوحة المفاتيح).
هل يوجد شيء مثل هذا في مكتبات OpenGL/Glut، أم سأضطر إلى البحث في مكان آخر؟
المحلول
لم أستخدم التخمة مطلقًا، لكنني أعلم أن الكثير من الناس سيقولون ذلك SDL أفضل.لقد استخدمت SDL وأعجبني كثيرًا.إنه يفعل كل ما يفعله Glut وأكثر من ذلك بكثير.في SDL، يمكنك استخدام SDL_PollEvent()
للحصول على حالة المفتاح دون تأخير المخزن المؤقت للوحة المفاتيح.
يحرر:لا أعرف شيئًا تقريبًا عن التخمة، ولكن يبدو أنه يمكنك استخدامها glutKeyboardFunc
للكشف عن المفاتيح العادية، و glutSpecialFunc
للمفاتيح التي لا تولد أحرف ASCII (مثل Shift).لست متأكدًا مما إذا كانت هناك طريقة أفضل، لأن هذا لا يبدو لطيفًا جدًا.
نصائح أخرى
ويمكنك الكشف عند حدوث حدث بضغطة وتسجيل تلك الدولة، ومن ثم الاستماع لحدث إطلاق رئيسي.
وكما قال، سيكون لديك لجعل جهازك الدولة الخاصة، والتي من السهل. ولكن تحتاج أيضا إلى استخدام هذا الأسلوب رد على ما أعتقد.
http://pyopengl.sourceforge.net/documentation/manual/glutKeyboardUpFunc. 3GLUT.xml