2014-04-16 5 views
7

दबाकर और रिलीज़ करना क्या दोहराए जाने पर महत्वपूर्ण दबाने वाली घटनाओं को अक्षम करने का कोई तरीका है? मैं एक गेम विकसित कर रहा हूं और जब मैं एक कुंजी दबाता हूं, तो खिलाड़ी चलने वाले मोड में जाते हैं और कुंजी जारी होने पर स्थायी मोड पर वापस जाते हैं। समस्या यह है कि keyPressEvent() घटनाओं को दोहराने के साथ, स्वचालित रूप से keyReleaseEvent() ईवेंट होते हैं, जिससे प्लेयर चलने वाले मोड में जाने के बाद तुरंत खड़े मोड पर जा रहा है, इस प्रकार चरण को रीसेट कर रहा है (जिसे मैं चल रहे एनीमेशन के लिए उपयोग करता हूं) .. क्या क्या मुझे इसे रद्द करने के लिए करना चाहिए?क्यूटी ऑटोरेपीटिंग कुंजी

+0

चूंकि आप एक गेम विकसित कर रहे हैं, तो शायद आपके पास गेम लूप होगा। यदि कोई कुंजी दबाया जाता है या नहीं, तो क्या यह हर पुनरावृत्ति की जांच करने के लिए काम करता है? मुझे यकीन नहीं है कि ऑटोरेलीज/प्रेस एक ओएस कार्यक्षमता है (मुझे लगता है)। बस अपनी कुंजी प्रेस और एक सेट-जैसी कंटेनर में रिलीज़ करें (प्रेस -> इसे जोड़ें, रिलीज़ करें -> इसे हटाएं) और कंटेनर में कुंजी होने पर प्रत्येक लूप पुनरावृत्ति की जांच करें। – OnWhenReady

उत्तर

13

चूंकि आपने क्यूटी के साथ अपना प्रश्न टैग किया है, मुझे लगता है कि आप क्यूटी कुंजी घटनाओं का उपयोग कर रहे हैं - उस स्थिति में, यह जांचने के लिए किका उपयोग करें, यह जांचने के लिए कि क्या मुख्य ईवेंट "असली" कुंजी ईवेंट या ऑटोरेपीट ईवेंट है।

+0

धन्यवाद! यह मेरी समस्या तय की। मैं अपने कीबोर्ड कार्यक्रमों के लिए "होल्ड" कार्यक्षमता चाहता था और होल्डिंग स्थिति में यह संभव नहीं था, दबाए गए और जारी किए गए कार्यक्रम हमेशा ट्रिगर किए जाते थे। – Morgane