您現在的位置是:首頁 » python編程資訊
資訊內容
pygame事件處理游戲界面進行全屏切換
極客小將2020-10-30-
通過按鍵事件學習如何通過一個按鍵來控制游戲窗口在全屏和窗口之間進行切換。
我們在第一個程序里使用了如下的語句
screen = pygame.display.set_mode((640, 480), 0, 32)
也講述了各個參數的意思,當我們把第二個參數設置為FULLSCREEN時,就能得到一個全屏窗口了
screen = pygame.display.set_mode((640, 480), FULLSCREEN, 32)
注意:如果你的程序有什么問題,很可能進入了全屏模式就不太容易退出來了,所以最好先用窗口模式調試好,再改為全屏模式。
看一下這個示例:
background_image_filename = './img/Spaceship.png'
import pygame
from pygame.locals import *
from sys import exit
pygame.init()
screen = pygame.display.set_mode((640, 480), 0, 32)
background = pygame.image.load(background_image_filename).convert()
Fullscreen = False
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
if event.type == KEYDOWN:
if event.key == K_f:
Fullscreen = not Fullscreen
if Fullscreen:
screen = pygame.display.set_mode((640, 480), FULLSCREEN, 32)
else:
screen = pygame.display.set_mode((640, 480), 0, 32)
screen.blit(background, (0,0))
pygame.display.update()
運行這個程序,默認還是窗口的,按“f ”,顯示模式會在窗口和全屏之間切換。
事件(Event) 基本上說是一個用戶操作,如按鍵、點擊、鼠標移動等等,或者是一些提示信息,如系統生成的通知。
事件檢索
上面程序中,使用了pygame.event.get()來處理所有的事件,這好像打開大門讓所有的人進入。然后根據需要進行篩選,過濾,根據不同的事件類型進行處理。
在上面的程序中如果是用戶按下關閉按鈕(QUIT),那么執行推出;如果是鍵盤按鍵按下事件(KEYDOWN),判斷是否是f鍵,然后進行全屏切換。
下表是一個常用事件集:
| 事件 | 產生途徑 | 參數 |
|---|---|---|
| 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 |
本站部分內容轉載自網絡,如有侵權請聯系管理員及時刪除。
