Pygame


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類似的,我們還有MOUSEBUTTONDOWNMOUSEBUTTONUP兩個事件,看名字就明白是什么意思了。很多時候,你只需要知道鼠標點下就可以了,那就可以不用上面那個比較強大(也比較復雜)的事件了。它們的參數為:

  • button – 看清楚少了個s,這個值代表了哪個按鍵被操作
  • pos – 和上面一樣

處理鍵盤事件

鍵盤和游戲手柄的事件比較類似,為KEYDOWNKEYUP,下面有一個例子來演示使用方向鍵移動一些東西。

KEYDOWN和KEYUP的參數描述如下:

  • key – 按下或者放開的鍵值,是一個數字,估計地球上很少有人可以記住,所以Pygame中你可以使用K_xxx來表示,比如字母a就是K_a,還有K_SPACEK_RETURN等。
  • mod – 包含了組合鍵信息,如果mod & KMOD_CTRL是真的話,表示用戶同時按下了Ctrl鍵。類似的還有KMOD_SHIFTKMOD_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()是交替顯示的意思。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM