कुंजीपटल हैंडलिंग को लागू करने का एक अच्छा तरीका क्या है?प्रभावी कीबोर्ड इनपुट हैंडलिंग
for event in pygame.event.get():
if event.type == KEYDOWN:
if False: pass #make everything an elif
elif rotating: pass
elif event.key == K_q:
elif event.key == K_e:
elif event.key == K_LEFT:
curpiece.shift(-1, 0)
shadowpiece = curpiece.clone(); setupshadow(shadowpiece)
elif event.key == K_RIGHT:
curpiece.shift(1, 0)
shadowpiece = curpiece.clone(); setupshadow(shadowpiece)
(छोटा): किसी भी भाषा, जहां मैं एक कीबोर्ड-सहभागी प्रोग्राम लिखने (जैसे एक tetris खेल के रूप में) में, मैं कुछ कोड है कि इस तरह दिखता है होने अंत। मुझे यह पसंद नहीं है, क्योंकि इसे मेरे मुख्य पाश में जाना है, और यह कार्यक्रम के सभी हिस्सों के साथ गड़बड़ है। इससे उपयोगकर्ता कॉन्फ़िगरेशन स्क्रीन भी असंभव हो जाती है जहां वे बदल सकते हैं कि कौन से महत्वपूर्ण मानचित्र क्रियाएं हैं। क्या फ़ंक्शन कॉलबैक के कुछ रूपों का उपयोग करके ऐसा करने के लिए कोई अच्छा पैटर्न है?
def handle_quit():
quit()
def handle_left():
curpiece.shift(-1, 0)
shadowpiece = curpiece.clone(); setupshadow(shadowpiece)
def handle_right():
curpiece.shift(1, 0)
shadowpiece = curpiece.clone(); setupshadow(shadowpiece)
def handle_pause():
if not paused:
paused = True
branch = {
K_q: handle_quit
K_e: handle_pause
K_LEFT: handle_left
K_RIGHT: handle_right
}
for event in pygame.event.get():
if event.type == KEYDOWN:
branch[event.key]()
फिर कुंजियां बदलने के शब्दकोश की कुंजी को संशोधित करने की बात है:
यह भी देखें कि http://stackoverflow.com/questions/292095/polling-the-keyboard-in-python –