Python之Pygame的Event事件模組怎麼使用
Pygame的Event事件模組
事件(Event)是Pygame 的重要模組之一,它是建立整個遊戲程式的核心,例如常用的滑鼠點擊、鍵盤敲擊、遊戲視窗移動、調整視窗大小、觸發特定的情節、退出遊戲等,這些都可以看做是「事件」。
事件類型
Pygame 定義了一個專門用來處理事件的結構,即事件佇列,該結構遵循遵循佇列「先到先處理」的基本原則,透過事件佇列,我們可以有順序的、逐一的處理使用者的操作(觸發事件)。下述表格列出了Pygame 中常用的遊戲事件:
#名稱 | ##說明|
---|---|
使用者按下視窗的關閉按鈕 |
|
Pygame被啟動或隱藏 |
|
#鍵盤按下 |
|
鍵盤放開 |
|
滑鼠移動 |
|
滑鼠按下 |
|
##滑鼠放開 |
|
遊戲手把(Joystick or pad) 移動 |
##JOYBALLMOTION |
#遊戲球(Joy ball) 移動
|
JOYHATMOTION |
遊戲手把(Joystick) 移動
|
#JOYBUTTONDOWN |
遊戲手把按下
|
JOYBUTTONUP |
遊戲手把放開
|
VIDEORESIZE |
Pygame視窗縮放
|
VIDEOEXPOSE |
# Pygame視窗部分公開(expose)
|
USEREVENT |
觸發一個使用者事件
|
事件處理方法名稱
從事件佇列中取得事件,並從佇列中刪除該事件
|
##pygame.event.wait() | |||||||||||||||||||||||||||||||||||
|
pygame.event.set_blocked() | |||||||||||||||||||||||||||||||||||
|
pygame.event.set_allowed() | |||||||||||||||||||||||||||||||||||
|
pygame.event.pump() | |||||||||||||||||||||||||||||||||||
|
pygame.event.poll() | |||||||||||||||||||||||||||||||||||
|
pygame.event.peek() | |||||||||||||||||||||||||||||||||||
|
pygame.event.clear() | |||||||||||||||||||||||||||||||||||
|
pygame.event.get_blocked() | |||||||||||||||||||||||||||||||||||
|
pygame.event.post() | |||||||||||||||||||||||||||||||||||
|
#pygame.event.Event() | |||||||||||||||||||||||||||||||||||
|
說明 | |
---|---|
K_BACKSPACE
| |
| |
| |
| |
| K_TAB |
製表鍵(Tab)
| K_CLEAR |
| |
| 清除鍵(Clear) |
K_RETURN | #Enter鍵(Enter) |
| |
| |
# #K_PAUSE | 暫停鍵(Pause) |
#K_ESCAPE | ##退出鍵(Escape)|
K_SPACE
| 空白鍵(Space)|
K_0...K_9
| 0…9|
K_a...Kz
| a…z|
K_DELETE
| 刪除鍵(delete)
#0 (小鍵盤)…9(小鍵盤)
K_DOWN#########################K_DOWN###################向下箭頭(down arrow)###############K_RIGHT##########向右箭頭(right arrow)############ ###K_LEFT#########向左箭頭(left arrow)################KMOD_ALT#########同時按下Alt鍵###############下面透過「圖片移動」範例來了解鍵盤事件的處理過程,如下所示:###K_F1...K_F15
F1…F15#K_UP
向上箭頭(up arrow)
import pygame import sys # 初始化pygame pygame.init() # 定义变量 size = width, height = 600, 400 bg = (255, 255, 255) # 加载logo图 img = pygame.image.load("./python.png") # 获取图像的位置 position = img.get_rect() # 创建一个主窗口 screen = pygame.display.set_mode(size) # 标题 pygame.display.set_caption("Python自学网") # 创建游戏主循环 while True: # 设置初始值 site = [0, 0] for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # 图像移动 KEYDOWN 键盘按下事件 # 通过 key 属性对应按键 if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: site[1] -= 8 if event.key == pygame.K_DOWN: site[1] += 8 if event.key == pygame.K_LEFT: site[0] -= 8 if event.key == pygame.K_RIGHT: site[0] += 8 # 移动图像 position = position.move(site) # 填充背景 screen.fill(bg) # 放置图片 screen.blit(img, position) # 更新显示界面 pygame.display.flip()
import pygame from random import randint # 初始化程序 pygame.init() screen = pygame.display.set_mode((450, 400)) pygame.display.set_caption("Python自学网") # 更新显示 pygame.display.flip() while True: # 等待事件发生 event = pygame.event.wait() if event.type == pygame.QUIT: exit("成功退出") if event.type == pygame.MOUSEBUTTONDOWN: # pos 获取鼠标当前位置 print('鼠标按下', event.pos) mx, my = event.pos # 调用 pygame.draw 模块画圆 pygame.draw.circle(screen, (255, 255, 0), (mx, my), 50) # 处理完,更新显示 pygame.display.update() if event.type == pygame.MOUSEBUTTONUP: print('鼠标弹起') pass if event.type == pygame.MOUSEMOTION: print('鼠标移动') mx, my = event.pos # 随机生成 RGB 颜色值 r = randint(0, 255) g = randint(0, 255) b = randint(0, 255) pygame.draw.circle(screen, (r, g, b,), (mx, my), 50) # 处理完,更新显示 pygame.display.update()
以上是Python之Pygame的Event事件模組怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

在CentOS系統上高效訓練PyTorch模型,需要分步驟進行,本文將提供詳細指南。一、環境準備:Python及依賴項安裝:CentOS系統通常預裝Python,但版本可能較舊。建議使用yum或dnf安裝Python3併升級pip:sudoyumupdatepython3(或sudodnfupdatepython3),pip3install--upgradepip。 CUDA與cuDNN(GPU加速):如果使用NVIDIAGPU,需安裝CUDATool

在CentOS系統上啟用PyTorchGPU加速,需要安裝CUDA、cuDNN以及PyTorch的GPU版本。以下步驟將引導您完成這一過程:CUDA和cuDNN安裝確定CUDA版本兼容性:使用nvidia-smi命令查看您的NVIDIA顯卡支持的CUDA版本。例如,您的MX450顯卡可能支持CUDA11.1或更高版本。下載並安裝CUDAToolkit:訪問NVIDIACUDAToolkit官網,根據您顯卡支持的最高CUDA版本下載並安裝相應的版本。安裝cuDNN庫:前

Docker利用Linux內核特性,提供高效、隔離的應用運行環境。其工作原理如下:1. 鏡像作為只讀模板,包含運行應用所需的一切;2. 聯合文件系統(UnionFS)層疊多個文件系統,只存儲差異部分,節省空間並加快速度;3. 守護進程管理鏡像和容器,客戶端用於交互;4. Namespaces和cgroups實現容器隔離和資源限制;5. 多種網絡模式支持容器互聯。理解這些核心概念,才能更好地利用Docker。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

在CentOS下選擇PyTorch版本時,需要考慮以下幾個關鍵因素:1.CUDA版本兼容性GPU支持:如果你有NVIDIAGPU並且希望利用GPU加速,需要選擇支持相應CUDA版本的PyTorch。可以通過運行nvidia-smi命令查看你的顯卡支持的CUDA版本。 CPU版本:如果沒有GPU或不想使用GPU,可以選擇CPU版本的PyTorch。 2.Python版本PyTorch

MinIO對象存儲:CentOS系統下的高性能部署MinIO是一款基於Go語言開發的高性能、分佈式對象存儲系統,與AmazonS3兼容。它支持多種客戶端語言,包括Java、Python、JavaScript和Go。本文將簡要介紹MinIO在CentOS系統上的安裝和兼容性。 CentOS版本兼容性MinIO已在多個CentOS版本上得到驗證,包括但不限於:CentOS7.9:提供完整的安裝指南,涵蓋集群配置、環境準備、配置文件設置、磁盤分區以及MinI

CentOS 安裝 Nginx 需要遵循以下步驟:安裝依賴包,如開發工具、pcre-devel 和 openssl-devel。下載 Nginx 源碼包,解壓後編譯安裝,並指定安裝路徑為 /usr/local/nginx。創建 Nginx 用戶和用戶組,並設置權限。修改配置文件 nginx.conf,配置監聽端口和域名/IP 地址。啟動 Nginx 服務。需要注意常見的錯誤,如依賴問題、端口衝突和配置文件錯誤。性能優化需要根據具體情況調整,如開啟緩存和調整 worker 進程數量。
