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

首頁 > 編程 > Python > 正文

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

2019-11-25 17:02:29
字體:
來源:轉載
供稿:網友

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

先看一下我做的demo效果:

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

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

那么啥是事件呢?

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

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

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

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

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

代碼部分如下:

#handle the key eventimport pygamefrom pygame.locals import *from sys import exit'''  事件             產生途徑              參數  QUIT         用戶按下關閉按鈕          none  ATIVEEVENT         Pygame被激活或者隱藏          gain, state  KEYDOWN         鍵盤被按下              unicode, key, mod  KEYUP         鍵盤被放開              key, mod  MOUSEMOTION         鼠標移動              pos, rel, buttons  MOUSEBUTTONDOWN     鼠標按下              pos, button  MOUSEBUTTONUP     鼠標放開              pos, button  JOYAXISMOTION     游戲手柄(Joystick or pad)移動      joy, axis, value  JOYBALLMOTION     游戲球(Joy ball)?移動      joy, axis, value  JOYHATMOTION     游戲手柄(Joystick)?移動      joy, axis, value  JOYBUTTONDOWN     游戲手柄按下              joy, button  JOYBUTTONUP         游戲手柄放開              joy, button  VIDEORESIZE         Pygame窗口縮放          size, w, h  VIDEOEXPOSE         Pygame窗口部分公開(expose)      none  USEREVENT         觸發了一個用戶事件          code'''__author__ = {'name' : 'Hongten',       'mail' : 'hongtenzone@foxmail.com',       'QQ'  : '648719819',       'Version' : '1.0'}BG_IMAGE = 'C://py//ball.png'pygame.init()screen = pygame.display.set_mode((500, 500), 0, 32)bg = pygame.image.load(BG_IMAGE).convert()x, y = 0, 0move_x, move_y = 0, 0while 1:  for event in pygame.event.get():    #print(event.type)    if event.type == QUIT:      exit()    if event.type == KEYDOWN:      print(event.key)      #event.key返回的是一個數字值,而K_LEFT,K_UP,K_RIGHT,K_DOWN等都是常量,      #他們代表的也是一個數字值,這些數字值可以用:print(event.key)獲取到      #如:K_LEFT = 276      #  K_UP = 273      #所以下面的代碼可以替換為:      #if event.key == 276:      #  move_x = -10      if event.key == K_LEFT:        move_x = -10      elif event.key == K_UP:        move_y = -10      elif event.key == K_RIGHT:        move_x = 10      elif event.key == K_DOWN:        move_y = 10    elif event.type == KEYUP:      move_x = 0      move_y = 0    x += move_x    y += move_y    #print(x, y)    screen.fill((0, 0, 0))    screen.blit(bg, (x, y))    pygame.display.update()

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 微博| 谢通门县| 吉安县| 安泽县| 新河县| 澎湖县| 电白县| 石门县| 黔西县| 汽车| 大庆市| 肥西县| 南陵县| 曲麻莱县| 肥城市| 泽州县| 元氏县| 铜陵市| 会理县| 玉屏| 富裕县| 茌平县| 麻城市| 资中县| 阿拉善左旗| 临夏市| 阿坝县| 平山县| 阳原县| 海淀区| 威远县| 海伦市| 盘锦市| 桓仁| 石屏县| 江北区| 新田县| 长顺县| 留坝县| 集贤县| 亳州市|