python基于pygame實現(xiàn)響應(yīng)游戲中事件的方法(附源碼)
本文實例講述了python基于pygame實現(xiàn)響應(yīng)游戲中事件的方法。分享給大家供大家參考,具體如下:
先看一下我做的demo效果:

當(dāng)玩家按下鍵盤上的:上,下,左,右鍵的時候,后臺會打印出玩家所按鍵的數(shù)字值,而圖形會隨之移動
這是客觀上面存在的現(xiàn)象。
那么啥是事件呢?
你叫我做出定義,我不知道,我只能舉個例子說明,例如接下來的代碼中,列出來一些關(guān)于游戲中的事件
''' 事件 產(chǎn)生途徑 參數(shù) QUIT 用戶按下關(guān)閉按鈕 none ATIVEEVENT Pygame被激活或者隱藏 gain, state KEYDOWN 鍵盤被按下 unicode, key, mod KEYUP 鍵盤被放開 key, mod MOUSEMOTION 鼠標(biāo)移動 pos, rel, buttons MOUSEBUTTONDOWN 鼠標(biāo)按下 pos, button MOUSEBUTTONUP 鼠標(biāo)放開 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 觸發(fā)了一個用戶事件 code '''
如鼠標(biāo)按下事件,鼠標(biāo)放開事件,鍵盤按下事件.....
這些事件的發(fā)生都伴隨著一個動作的發(fā)生,正是因為有動作的發(fā)生,所以我們才可以撲捉到這些動作,從而做出相應(yīng)的反應(yīng)
如,我們按下鍵盤的左鍵,圖片就向左移動一段距離...
代碼部分如下:
#handle the key event
import pygame
from pygame.locals import *
from sys import exit
'''
事件 產(chǎn)生途徑 參數(shù)
QUIT 用戶按下關(guān)閉按鈕 none
ATIVEEVENT Pygame被激活或者隱藏 gain, state
KEYDOWN 鍵盤被按下 unicode, key, mod
KEYUP 鍵盤被放開 key, mod
MOUSEMOTION 鼠標(biāo)移動 pos, rel, buttons
MOUSEBUTTONDOWN 鼠標(biāo)按下 pos, button
MOUSEBUTTONUP 鼠標(biāo)放開 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 觸發(fā)了一個用戶事件 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, 0
move_x, move_y = 0, 0
while 1:
for event in pygame.event.get():
#print(event.type)
if event.type == QUIT:
exit()
if event.type == KEYDOWN:
print(event.key)
#event.key返回的是一個數(shù)字值,而K_LEFT,K_UP,K_RIGHT,K_DOWN等都是常量,
#他們代表的也是一個數(shù)字值,這些數(shù)字值可以用: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程序設(shè)計有所幫助。
相關(guān)文章
基于Python實現(xiàn)語音識別和語音轉(zhuǎn)文字
這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)語音識別和語音轉(zhuǎn)文字功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-09-09
Python Django簡單實現(xiàn)session登錄注銷過程詳解
這篇文章主要介紹了Python Django簡單實現(xiàn)session登錄注銷過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法
我相信很多人在學(xué)習(xí)Python的時候,特別是在open文件的時候總還碰到,還報錯IOError:[Errno?2]沒有這樣的文件或目錄:'E://aaa.txt',這篇文章主要給大家介紹了關(guān)于python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法,需要的朋友可以參考下2022-02-02
Python使用MD5加密算法對字符串進(jìn)行加密操作示例
這篇文章主要介紹了Python使用MD5加密算法對字符串進(jìn)行加密操作,結(jié)合實例形式分析了Python實現(xiàn)md5加密相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
Python使用BeautifulSoup抓取和解析網(wǎng)頁數(shù)據(jù)的操作方法
在數(shù)據(jù)分析和機器學(xué)習(xí)領(lǐng)域中,數(shù)據(jù)是不可或缺的資源,網(wǎng)頁數(shù)據(jù)作為豐富的信息來源,往往需要通過爬蟲抓取,Python的BeautifulSoup是處理HTML和XML的利器,本篇文章將詳細(xì)介紹BeautifulSoup的基本用法,并通過一個實際案例演示如何使用BeautifulSoup抓取和解析網(wǎng)頁數(shù)據(jù)2024-11-11
Python在后臺自動解壓各種壓縮文件的實現(xiàn)方法
這篇文章主要介紹了Python在后臺自動解壓各種壓縮文件的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11

