Pygame的幾個模塊


  這篇博客主要是從功能上介紹幾個Pygame的模塊,沒有深入到代碼細節。大部分內容來自《Python基礎教程》。

  • pygame

  pygame模塊會自動導入其他Pygame模塊,所以如果用了 import pygame,就能自動訪問其他模塊,比如pygame.display等。

  pygame模塊包括Surface函數(和一些其他工具),它可以返回一個新的Surface對象。Surface對象就是一個有確定尺寸的空圖像,可以用來進行圖像繪制和移動。移動(blit方法)只意味着將內容從一個表面轉移到另外一個表面上面。單詞blit是從屬於block transfer的縮寫BLT衍生而來。

  init函數式Pygame游戲的核心。它必須在進入游戲的主事件循環之前調用,它會自動初始化其他所有模塊。

  如果需要捕捉Pygame特有的錯誤時,還需要error類。

  • pygame.locals

  pygame.locals模塊包括在你自己的模塊作用域內使用的名字(變量),還包括事件類型、鍵和視頻模式等的名字。在導入所有內容(from pygame.locals import *)時它用起來是很安全的。如果你知道自己需要的內容,也可以導入更加具體的內容(比如 from pygame.locals import FULLSEREEN)。

  • pygame.display

  pygame.display模塊包括處理Pygame顯示方式的函數,其中包括普通窗口和全屏模式。比如有這些函數:

   flip:更新顯示。一般來說,當修改當前屏幕的時候需要經過兩個步驟。首先,需要對get_surface函數返回的Surface對象進行所有需要的修改。然后調用pygame.display.flip更新顯示  以反映你的修改。

   update:在只想更新屏幕一部分的時候使用update函數,而不是flip函數。它可以從RenderUpdates類的draw方法中返回的矩形列表一起使用。

   set_mode:設定顯示的類型和尺寸。會返回一個Surface對象,代表了在桌面上出現的那個窗口,三個參數第一個為元祖,代表分 辨率(必須);第二個是一個標志位,具體意思見下  表,如果不用什么特性,就指定0;第三個為色深。

標志位 功能
FULLSCREEN 創建一個全屏窗口
DOUBLEBUF 創建一個“雙緩沖”窗口,建議在HWSURFACE或者OPENGL時使用
HWSURFACE 創建一個硬件加速的窗口,必須和FULLSCREEN同時使用
OPENGL 創建一個OPENGL渲染的窗口
RESIZABLE 創建一個可以改變大小的窗口
NOFRAME 創建一個沒有邊框的窗口

   set_caption:設定Pygame程序的標題,當游戲以窗口模式運行時,顯示為窗口的標題。

   get_surface:在調用pygame.display.flip或者pygame.display.blit前返回一個可用於畫圖的Surface對象。

  • pygame.font

  pygame.font模塊包括Font函數。字體對象用於表現不同的字體,可以用於將文本生成為可以再Pygame中用作普通圖像的圖像。

  • pygame.sprite

  pygame.sprite模塊包括兩個非常重要的類:Sprite和Group。

  Sprite類是所有可視游戲對象的基類,有過游戲編程經驗甚至只是玩過游戲的人應該都知道“精靈”這個詞,其實Sprite就是精靈。為了實現自己的游戲對象,需要子類化Sprite,覆蓋它的構造函數以設定image和rect屬性(決定Sprite的外觀和放置的位置),再覆蓋update方法,在Sprite需要更新的時候可以調用。

  Group類的實例(和它的子類)用作Sprite對象的容器。一般來說,使用group類還是不錯的作法。在一些簡單的游戲中,只要創建名為sprites或者allsprites或者其他類似的組,然后將所有的Sprite對象添加到上面即可。當調用Group對象的update方法時,它就會自動調用所有Sprite對象的update方法。Group對象的clear方法用於清理它包含的所有Sprite對象(使用回調函數實現清理),draw方法可以用於繪制所有的Sprite對象。

  • pygame.mouse

  關於鼠標的模塊,可以設置參數、獲取信息等。如可以使用pygame.mouse.set_visible來設置光標是隱藏還是可見,用pygame.mouse.get_pos來獲取鼠標的位置。

  • pygame.event

  pygame.event模塊會追蹤鼠標單擊、鼠標移動、按鍵按下和釋放等事件。使用pygame.event.get可以獲取最近事件列表。

  • pygame.image

  這個模塊用於處理保存在GIF、PNG或JPEG等文件內的圖像。pygame.image.load函數用來讀取圖像文件,並且創建包括該圖像的Surface對象。


免責聲明!

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



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