2013-06-24 6 views
17

तो, थोड़ी देर पहले, मैंने खुद को kivy पढ़ाना शुरू कर दिया। मैंने मुख्य किवी वेबसाइट से शुरुआत की और अपने पोंग बनाने के ट्यूटोरियल के माध्यम से चला गया और यह खत्म करने पर मैंने कोशिश की कि यह महत्वपूर्ण इनपुट करने का प्रयास करें। मैं सिर्फ कुंजी के साथ कुंजी इनपुट के लिए किसी भी तरह की गाइड नहीं लग रहा है! किसी को किसी प्रकार का ट्यूटोरियल पता है या कोड समझने में कुछ आसान प्रदान कर सकता है? मैंने किवी के उदाहरण फ़ोल्डर में कीबोर्ड श्रोता को देखा, लेकिन मुझे पूरा यकीन नहीं है कि अगर मुझे लगता है कि इसका उपयोग कैसे किया जाए।आप किवी के साथ कीबोर्ड कार्यक्रमों की जांच कैसे करते हैं?

किसी भी सहायता के लिए धन्यवाद।

उत्तर

21

मुझे लगता है कि आप कीबोर्ड से पैडल को नियंत्रित करने के तरीके से पूछ रहे हैं। मुझे लगता है कि आपके कंप्यूटर पर चल रहे अंतिम पिंग पोंग कोड हैं (यदि नहीं, तो आप उन्हें this section के अंत में पा सकते हैं)।

1 - main.py आयात विंडो वर्ग में:

from kivy.core.window import Window 

2 - पुन: निर्धारित करें PongGame कक्षा की शुरुआत तो यह ऐसा दिखाई देता है:

class PongGame(Widget): 
    ball = ObjectProperty(None) 
    player1 = ObjectProperty(None) 
    player2 = ObjectProperty(None) 

    def __init__(self, **kwargs): 
     super(PongGame, self).__init__(**kwargs) 
     self._keyboard = Window.request_keyboard(self._keyboard_closed, self) 
     self._keyboard.bind(on_key_down=self._on_keyboard_down) 

    def _keyboard_closed(self): 
     self._keyboard.unbind(on_key_down=self._on_keyboard_down) 
     self._keyboard = None 

    def _on_keyboard_down(self, keyboard, keycode, text, modifiers): 
     if keycode[1] == 'w': 
      self.player1.center_y += 10 
     elif keycode[1] == 's': 
      self.player1.center_y -= 10 
     elif keycode[1] == 'up': 
      self.player2.center_y += 10 
     elif keycode[1] == 'down': 
      self.player2.center_y -= 10 
     return True 

देखा! बाएं पैडल के लिए w और s दबाएं और दाएं पैडल के लिए up और down दबाएं।

+0

आह, ऐसा लगता है कि समय के लिए काम करना प्रतीत होता है, लेकिन अगर मैं चाहता हूं कि प्रत्येक वर्ग की अपनी कुंजी जांच हो तो मैं क्या करूँ? क्या मुझे केवल प्रत्येक कक्षा में _on_keyboard_down func का उपयोग करना होगा? या मुझे कीबोर्ड को कई बार प्रारंभ करना होगा? – Alex

+0

@ एलेक्स, यह एक अलग सवाल है। टिप्पणियों का उपयोग करने के बजाय एक नया सवाल पूछने के लिए स्वतंत्र महसूस करें। –

+8

आपको उन सभी विजेट्स में _keyboard.bind() का उपयोग करना होगा, जिनकी आवश्यकता है। – Tshirtman

संबंधित मुद्दे