pygame
.
init
(
) #初始化pygame,為使用硬件做准備
screen
=
pygame
.
display
.
set_mode
(
(
640
,
480
)
,
0
,
32
)
#創建了一個窗口,set_mode會返回一個Surface對象,代表了在桌面上出現的那個窗口,三個參數第一個為元祖,代表分 辨率(必須);第二個是一個標志位,如果不用什么特性,就指定0;第三個為色深。當我們把第二個參數設置為FULLSCREEN時,就能得到一個全屏窗口了
pygame
.
display
.
set_caption
(
"Hello, World!"
)
#設置窗口標題
background
=
pygame
.
image
.
load
(
background_image_filename
)
.
convert
(
) #加載並轉換圖像
mouse_cursor
=
pygame
.
image
.
load
(
mouse_image_filename
)
.
convert_alpha
(
)
#加載並轉換圖像,圖像要有
有Alpha通道,保留了Alpha 通道信息(可以簡單理解為透明的部分)
screen.blit(background,(0,0))
#將背景圖畫上去,blit是個重要函數,第一個參數為一個Surface對象,第二個為左上角位置。
x,y=pygame.mouse.get_pos() #獲得鼠標位置
ygame.display.update()
#刷新一下畫面,畫完以后一定記得用update更新一下,否則畫面一片漆黑。
event=pygame.event.wait()
#等待事件發生,獲得事件的名稱
處理鼠標事件
MOUSEMOTION事件會在鼠標動作的時候發生,它有三個參數:
- buttons – 一個含有三個數字的元組,三個值分別代表左鍵、中鍵和右鍵,1就是按下了。
- pos – 就是位置了……
- rel – 代表了現在距離上次產生鼠標事件時的距離
和MOUSEMOTION類似的,我們還有MOUSEBUTTONDOWN和MOUSEBUTTONUP兩個事件,看名字就明白是什么意思了。很多時候,你只需要知道鼠標點下就可以了,那就可以不用上面那個比較強大(也比較復雜)的事件了。它們的參數為:
- button – 看清楚少了個s,這個值代表了哪個按鍵被操作
- pos – 和上面一樣
處理鍵盤事件
鍵盤和游戲手柄的事件比較類似,為KEYDOWN和KEYUP,下面有一個例子來演示使用方向鍵移動一些東西。
KEYDOWN和KEYUP的參數描述如下:
- key – 按下或者放開的鍵值,是一個數字,估計地球上很少有人可以記住,所以Pygame中你可以使用K_xxx來表示,比如字母a就是K_a,還有K_SPACE和K_RETURN等。
- mod – 包含了組合鍵信息,如果mod & KMOD_CTRL是真的話,表示用戶同時按下了Ctrl鍵。類似的還有KMOD_SHIFT,KMOD_ALT。
- unicode – 代表了按下鍵的Unicode值,這個有點不好理解,真正說清楚又太麻煩,游戲中也不太常用,說明暫時省略,什么時候需要再講吧。
過濾掉一些我們不感興趣的事件:pygame.event.set_blocked(事件名)
與之相對的,我們使用pygame.event.set_allowed()來設定允許的事件。
產生時間
my_event
=
pygame
.
event
.
Event
(
KEYDOWN
,
key
=
K_SPACE
,
mod
=
0
,
unicode
=
u
' '
)
#你也可以像下面這樣寫,看起來比較清晰(但字變多了……)
my_event
=
pygame
.
event
.
Event
(
KEYDOWN
,
{
"key"
:
K_SPACE
,
"mod"
:
0
,
"unicode"
:
u
' '
}
)
pygame
.
event
.
post
(
my_event
)
pygame.display.update()是將數據畫到前面顯示,而pygame.display.flip()是交替顯示的意思。
