¸üÐÂʱ¼ä:2022Äê07ÔÂ26ÈÕ16ʱ55·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:
ÓÎÏ·ÐèÒªÓëÍæ¼Ò½»»¥£¬Òò´ËËü±ØÐëÄܹ»½ÓÊÕÍæ¼ÒµÄ²Ù×÷£¬²¢¸ù¾ÝÍæ¼Ò²Ù×÷ÓÐÕë¶ÔÐÔµØ×ö³öÏìÓ¦¡£³ÌÐò¿ª·¢Öн«Íæ¼Ò»á¶ÔÓÎÏ·½øÐеIJÙ×÷³ÆÎªÊ¼þ(Event)£¬¸ù¾ÝÊäÈëý½éµÄ²»Í¬£¬ÓÎÏ·ÖеÄʼþ·ÖΪ¼üÅÌʼþ¡¢Êó±êʼþºÍÊÖ±úʼþµÈ¡£pygameÔÚ×ÓÄ£¿élocalsÖжÔʼþ½øÐÐÁ˸ü¼Óϸֵ͍Ò壬¼üÅÌʼþ¡¢Êó±êʼþ¼°Æä²úÉú;¾¶ºÍ²ÎÊýÈçϱíËùʾ¡£

ÓɱíÉϱí¿ÉÖª£¬pygame.localsÖеļüÅÌʼþ·ÖΪKEYDOWNºÍKEYUP.ÕâÁ½¸öʼþµÄ²ÎÊýÃèÊöÈçÏ¡£
(1)unicode£º¼Ç¼°´¼üµÄUnicodeÖµ¡£
(2)key£º°´Ï»ò·Å¿ªµÄ¼üµÄ¼üÖµ£¬¼üÖµÊÇÒ»¸öÊý×Ö£¬µ«ÎªÁË·½±ãʹÓã¬pygameÖÐÖ§³ÖÒÔK_xxÀ´±íʾ°´¼ü£¬ÀýÈ磬×Öĸ¼ü±íʾΪK_a¡¢K_bµÈ£¬·½Ïò¼ü±íʾΪK_UP¡¢K_DOWN¡¢K_LEFT¡¢K_RIGHT,ESC¼ü±íʾΪK_ESCAPE(¸ü¶à°´¼ü±íʾÇë²Î¼ûpygameÊÖ²á)¡£
(3)mod£º°üº¬×éºÏ¼üÐÅÏ¢£¬ÀýÈçmod&KMOD_CTRLÎªÕæ£¬±íʾÓû§ÔÚ°´ÏÂÆäËû¼üµÄͬʱ°´ÏÂÁËCtrl¼ü¡£ÀàËÆµÄ»¹ÓÐKMOD_SHIFT¡¢KMOD_ALT¡£
Pygame.localsÖеÄÊó±êʼþ·ÖΪMOUSEMOTION¡¢MOUSEBUTTONDOWN¡¢MOU SEBUTTONUP£¬Õâ3¸öʼþµÄ²ÎÊýÃèÊöÈçÏ¡£
(l)pos£ºÊó±ê²Ù×÷µÄλÖ㬸òÎÊýÊÇÒ»¸ö°üº¬ºá×ø±êxºÍ×Ý×ø±êyµÄÔª×é¡£
(2)rel£ºµ±Ç°Î»ÖÃÓëÉϴβúÉúÊó±êʼþʱÊó±êÖ¸ÕëλÖüäµÄ¾àÀë¡£
(3)buttons£ºÒ»¸öº¬ÓÐ3¸öÊý×ÖµÄÔª×飬Ԫ×éÖÐÊý×ÖµÄȡֵֻÄÜΪ0»ò1£¬3¸öÊý×ÖÒÀ´Î±íʾ×ó¼ü¡¢¹öÂÖºÍÓÒ¼ü¡£Èô½öÒÆ¶¯Êó±ê£¬ÔòbuttonsµÄֵΪ(1,0,0);ÈôÊó±êÒÆ¶¯µÄͬʱµ¥»÷Êó±êµÄij¸ö°´¼ü£¬Ôª×éÖÐÓë¸Ã¼ü¶ÔÓ¦µÄÖµ¸ü¸ÄΪ1£¬ÀýÈç°´ÏÂÊó±ê×ó¼ü£¬buttonsµÄֵΪ(1,0,0)¡£
(4)button£ºÕûÐÍÊýÖµ£¬1±íʾµ¥»÷Êó±ê×ó¼ü£¬2±íʾµ¥»÷¹öÂÖ£¬3±íʾµ¥»÷ÓÒ¼ü£¬4±íʾÏòÉÏ»¬¶¯¹öÂÖ£¬5±íʾÏòÏ»¬¶¯¹öÂÖ¡£
³ÌÐò¿Éͨ¹ýpygame×ÓÄ£¿éeventÖеÄtypeÊôÐÔÅжÏʼþÀàÐÍ£¬Í¨¹ýget()º¯Êý»ñÈ¡µ±Ç°Ê±¿Ì²úÉúµÄËùÓÐʼþµÄÁÐ±í¡£µ±È»£¬²¢·ÇʼþÁбíÖеÄʼþ¶¼ÐèÒª¹ØÐĺʹ¦Àí£¬³ÌÐòͨ³£ÔÚÑ»·ÖбéÀúʼþÁÐ±í£¬½«ÆäÖеÄÔªËØÓëÐèÒª´¦ÀíµÄʼþ³£Á¿½øÐбȶԣ¬Èôµ±Ç°Ê¼þΪÐèÒª´¦ÀíµÄʼþ£¬ÔÙ¶ÔÆä½øÐÐÏàÓ¦²Ù×÷¡£
ÔÚ³ÌÐò7_pg_test.pyÖÐÌí¼Óʼþ´¦Àí´úÂ룬¾ßÌåÈçÏÂËùʾ£º
````
#»ñÈ¡µã»÷ʼþ£¬rect.collodepoint£¨£©£¬Åжϵã»÷λÖÃ
while True:
FPSCLOCK.tick (FPS)
for event in pygame.event.get():
if event.type == MOUSEBUTTONUP: #Èç¹ûÓÐÊó±ê·Å¿ªÊ¼þ
if blockRect.collidepoint(event.pos)£º #¾»Èç¹ûµã»÷µÄÊÇ·½¿é
print£¨'µã»÷ÁË·½¿é'£©
elif autoRect.collidepoint (event.pos):
print£¨'µã»÷Á˰´Å¥'£©
else:
print£¨'µã»÷Á˿հ×ÇøÓò'£©
elif event.type == KEYUP:#Èç¹ûÓа´¼ü·Å¿ªÊ¼þ
if event.key in (K_LEFT,K_a):
print('←')
elif event.key in (K_RIGHT, K_d):
print('→')
elif event.key in (K_UP, K_w):
print('↑')
elif event.key in (K_DOWN, K_s):
print('↓')
elif event.key ==K_ESCAPE:
print('Í˳öÓÎÏ·')
pygame.quit()
pygame.quit()
ÒÔÉÏ´úÂëÔÚwhileÑ»·ÖÐͨ¹ýfor Ñ»·±éÀúʼþ£¬¶Ôÿ²ãforÑ»·È¡³öµÄʼþevent½øÐÐÅжϣ¬Èôµ±Ç°Ê¼þΪÊó±ê·Å¿ªÊ¼þ(MOUSEBUTTONUP)£¬ËµÃ÷Êó±ê°´¼üÔø±»°´Ï£¬´ËʱʹÓÃRectÀàµÄcollidepoint()·½·¨Åжϵã»÷µÄλÖÃevent.posÓë·½¿é¡¢°´Å¥µÄ¹ØÏµ£¬Êä³öÏàÓ¦ÐÅÏ¢;Èôµ±Ç°Ê¼þΪ°´¼ü·Å¿ªÊ¼þ(KEYUP)£¬ËµÃ÷¼üÅ̰´¼üÔø±»°´Ï£¬´Ëʱ¸ù¾Ýevent.keyÊôÐÔÅжÏÔø±»°´ÏµľßÌå°´¼ü£¬¸ù¾Ý°´¼ü´òÓ¡ÏàÓ¦µÄÐÅÏ¢£¬»òÍ˳ö³ÌÐò¡£Ö´ÐгÌÐò£¬ÒÀ´ÎÖ´ÐÐÑ»·ÖеÄÅжÏÌõ¼þ£¬³ÌÐò´òÓ¡½á¹ûÈçÏ£º
·pypygame 1.9.4 Hello from the pygame community. https://www.pygame.org/contribute.html <rect (290, 210, 60, 60)> µã»÷ÁË·½¿é µã»÷Á˰´Å¥ µã»÷Á˿հ×ÇøÓò Í˳öÓÎÏ· ← → ↑ ↓
´Ë´¦µÄʾÀý½öΪչʾÓÎÏ·¿ª·¢ÖеÄʼþ´¦ÀíÁ÷³Ì£¬²¢Î´Ïêϸ½²½âÈçºÎÑ¡ÔñÒª´¦ÀíµÄʼþÒÔ¼°Ê¼þµÄÏêϸ´¦Àí£¬½ÔÒòÐèÇó¾ö¶¨³ÌÐò×ßÏò£¬³ÌÐò´úÂë×ÜÊÇÓë³ÌÐòµÄ¹¦ÄÜϢϢÏà¹Ø¡£
±±¾©Ð£Çø