日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pygame系列_游戏中的事件

發布時間:2024/9/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pygame系列_游戏中的事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看一下我做的demo:

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

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

那么啥是事件呢?

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

'''事件 產生途徑 參數QUIT 用戶按下關閉按鈕 noneATIVEEVENT Pygame被激活或者隱藏 gain, stateKEYDOWN 鍵盤被按下 unicode, key, modKEYUP 鍵盤被放開 key, modMOUSEMOTION 鼠標移動 pos, rel, buttonsMOUSEBUTTONDOWN 鼠標按下 pos, buttonMOUSEBUTTONUP 鼠標放開 pos, buttonJOYAXISMOTION 游戲手柄(Joystick or pad)移動 joy, axis, valueJOYBALLMOTION 游戲球(Joy ball)?移動 joy, axis, valueJOYHATMOTION 游戲手柄(Joystick)?移動 joy, axis, valueJOYBUTTONDOWN 游戲手柄按下 joy, buttonJOYBUTTONUP 游戲手柄放開 joy, buttonVIDEORESIZE Pygame窗口縮放 size, w, hVIDEOEXPOSE Pygame窗口部分公開(expose) noneUSEREVENT 觸發了一個用戶事件 code '''

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

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

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

================================================

代碼部分:

================================================

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

參考資料:

http://eyehere.net/2011/python-pygame-novice-professional-2/

總結

以上是生活随笔為你收集整理的pygame系列_游戏中的事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。