国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python基于pygame實現響應游戲中事件的方法(附源碼下載)

2020-01-04 17:56:28
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了python基于pygame實現響應游戲中事件的方法,實例分析了Python基于pygame針對鍵盤及鼠標事件的響應方法,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了python基于pygame實現響應游戲中事件的方法。分享給大家供大家參考,具體如下:

先看一下我做的demo效果:

python基于pygame實現響應游戲中事件的方法(附源碼下載)

當玩家按下鍵盤上的:上,下,左,右鍵的時候,后臺會打印出玩家所按鍵的數字值,而圖形會隨之移動

這是客觀上面存在的現象。

那么啥是事件呢?

你叫我做出定義,我不知道,我只能舉個例子說明,例如接下來的代碼中,列出來一些關于游戲中的事件

 

 
  1. ''
  2. 事件 產生途徑 參數 
  3. QUIT 用戶按下關閉按鈕 none 
  4. ATIVEEVENT Pygame被激活或者隱藏 gain, state 
  5. KEYDOWN 鍵盤被按下 unicode, key, mod 
  6. KEYUP 鍵盤被放開 key, mod 
  7. MOUSEMOTION 鼠標移動 pos, rel, buttons 
  8. MOUSEBUTTONDOWN 鼠標按下 pos, button 
  9. MOUSEBUTTONUP 鼠標放開 pos, button 
  10. JOYAXISMOTION 游戲手柄(Joystick or pad)移動 joy, axis, value 
  11. JOYBALLMOTION 游戲球(Joy ball)?移動 joy, axis, value 
  12. JOYHATMOTION 游戲手柄(Joystick)?移動 joy, axis, value 
  13. JOYBUTTONDOWN 游戲手柄按下 joy, button 
  14. JOYBUTTONUP 游戲手柄放開 joy, button 
  15. VIDEORESIZE Pygame窗口縮放 size, w, h 
  16. VIDEOEXPOSE Pygame窗口部分公開(expose) none 
  17. USEREVENT 觸發了一個用戶事件 code 
  18. ''

如鼠標按下事件,鼠標放開事件,鍵盤按下事件.....

這些事件的發生都伴隨著一個動作的發生,正是因為有動作的發生,所以我們才可以撲捉到這些動作,從而做出相應的反應

如,我們按下鍵盤的左鍵,圖片就向左移動一段距離...

代碼部分如下:

 

 
  1. #handle the key event 
  2. import pygame 
  3. from pygame.locals import * 
  4. from sys import exit 
  5. ''
  6. 事件 產生途徑 參數 
  7. QUIT 用戶按下關閉按鈕 none 
  8. ATIVEEVENT Pygame被激活或者隱藏 gain, state 
  9. KEYDOWN 鍵盤被按下 unicode, key, mod 
  10. KEYUP 鍵盤被放開 key, mod 
  11. MOUSEMOTION 鼠標移動 pos, rel, buttons 
  12. MOUSEBUTTONDOWN 鼠標按下 pos, button 
  13. MOUSEBUTTONUP 鼠標放開 pos, button 
  14. JOYAXISMOTION 游戲手柄(Joystick or pad)移動 joy, axis, value 
  15. JOYBALLMOTION 游戲球(Joy ball)?移動 joy, axis, value 
  16. JOYHATMOTION 游戲手柄(Joystick)?移動 joy, axis, value 
  17. JOYBUTTONDOWN 游戲手柄按下 joy, button 
  18. JOYBUTTONUP 游戲手柄放開 joy, button 
  19. VIDEORESIZE Pygame窗口縮放 size, w, h 
  20. VIDEOEXPOSE Pygame窗口部分公開(expose) none 
  21. USEREVENT 觸發了一個用戶事件 code 
  22. ''
  23. __author__ = {'name' : 'Hongten'
  24. 'mail' : 'hongtenzone@foxmail.com'
  25. 'QQ' : '648719819'
  26. 'Version' : '1.0'
  27. BG_IMAGE = 'C://py//ball.png' 
  28. pygame.init() 
  29. screen = pygame.display.set_mode((500, 500), 0, 32) 
  30. bg = pygame.image.load(BG_IMAGE).convert() 
  31. x, y = 0, 0 
  32. move_x, move_y = 0, 0 
  33. while 1: 
  34. for event in pygame.event.get(): 
  35. #print(event.type) 
  36. if event.type == QUIT: 
  37. exit() 
  38. if event.type == KEYDOWN: 
  39. print(event.key) 
  40. #event.key返回的是一個數字值,而K_LEFT,K_UP,K_RIGHT,K_DOWN等都是常量, 
  41. #他們代表的也是一個數字值,這些數字值可以用:print(event.key)獲取到 
  42. #如:K_LEFT = 276 
  43. # K_UP = 273 
  44. #所以下面的代碼可以替換為: 
  45. #if event.key == 276: 
  46. # move_x = -10 
  47. if event.key == K_LEFT: 
  48. move_x = -10 
  49. elif event.key == K_UP: 
  50. move_y = -10 
  51. elif event.key == K_RIGHT: 
  52. move_x = 10 
  53. elif event.key == K_DOWN: 
  54. move_y = 10 
  55. elif event.type == KEYUP: 
  56. move_x = 0 
  57. move_y = 0 
  58. x += move_x 
  59. y += move_y 
  60. #print(x, y) 
  61. screen.fill((0, 0, 0)) 
  62. screen.blit(bg, (x, y)) 
  63. pygame.display.update() 

完整實例代碼代碼點擊此處本站下載。

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉兴市| 迁西县| 高平市| 梁河县| 犍为县| 手游| 肥城市| 苍山县| 东山县| 文化| 黄石市| 城步| 大悟县| 德庆县| 鄱阳县| 始兴县| 屏山县| 马公市| 扎赉特旗| 夏河县| 永昌县| 庄河市| 巨鹿县| 贵溪市| 宝坻区| 陆良县| 那坡县| 敦煌市| 锡林郭勒盟| 商都县| 潞城市| 长汀县| 正安县| 林周县| 湖南省| 宁德市| 陆川县| 汽车| 海盐县| 仁化县| 改则县|