1、前言
pygame是一個用Python寫的SDL庫。SDL是一個能訪問計算機多媒體硬件組件(包括聲卡,視頻卡,輸入組件等)的跨平臺庫。本系列主要經過pygame作小遊戲來學習編程。對於學過基本語法,刷過一些題目的同窗,提升本身的最佳方式就是經過作小遊戲等實際的項目,有目標地作項目才能真正將知識內化。初學者必定要學會CRM(Copy Run Modify,又稱魔改)大法,把書上網上的例子代碼跑起來後,必定要嘗試修改下代碼,經過關鍵參數或者關鍵語句的修改,能夠驗證本身對代碼的理解是否正解。編程
2、安裝
安裝pygame的最佳方式是經過pip命令來安裝,在Windows下打開CMD窗口(win鍵 + R,輸入 cmd)界面上輸入pip install pygame命令便安裝好。 框架
有一些同窗在這步安裝過程當中會遇到包沒法順利下載的問題,能夠用一下命令來執行,這個命令是經過pip使用豆瓣源的鏡像來下載安裝pygame。兩個命令的區別在於安裝過程所須要的文件是在國外仍是國內的網站去下載。函數
pip install pygame -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com工具
3、Hello world
學習編程任何語言,框架都是從Hello world例子開始的,學習pygame也不例外,咱們從如下例子開始。oop
import pygame, sys # 初始化 pygame.init() # 設置屏幕的寬度,高度 SCREEN = pygame.display.set_mode((400, 300)) # 設置窗口的標題 pygame.display.set_caption('Hello World!') # 遊戲主循環 while True: # main game loop for event in pygame.event.get(): # 處理退出事件 if event.type == pygame.QUIT: pygame.quit() sys.exit() # 將屏幕的背景填充成白色,瞭解下RGB三原色 SCREEN.fill((255, 255, 255)) # 調用 pygame.display.update() 方法更新整個屏幕的顯示 pygame.display.update()
效果以下: 學習
遊戲主循環
遊戲主循環(事件)是一直在運行着的。不管是在玩遊戲,更新遊戲狀態,渲染畫面或者是採集輸入數據,它是一直在不間斷運行着的。當咱們建立一個循環時,必須能保證,咱們有方法能夠跳出循環,結束程序運行。遊戲中常常用各類事件要處理,好比鍵盤鼠標等操做,pygame把全部相似的事件都放進事件隊列,再由用戶來處理。咱們能夠用pygame.event.get()方法來操做它。目前咱們只處理遊戲的退出事件,上面代碼裏當收到退出事件後,就退出遊戲。網站
4、經常使用的知識點
1. 理解遊戲座標系
pygame座標系的理解是十分關鍵的,全部的圖形圖片的繪製都與之相關。原點 在 左上角 (0, 0) x 軸 水平方向向 右,逐漸增長 y 軸 垂直方向向 下,逐漸增長ui
2. 矩形結構
矩形是一個簡單的矩形——僅由左上角的位置、寬度和高度來定義。不少pygame函數都把rects做爲參數,它們也取「rectstyle」,這個序列的值與矩形的值相同,因此若是我須要一個矩形來定義10 20 40 50的面積,我能夠作如下任何一項:code
rect = pygame.Rect(10, 20, 40, 50) rect = pygame.Rect((10, 20, 40, 50)) rect = pygame.Rect((10, 20), (40, 50)) rect = (10, 20, 40, 50) rect = ((10, 20, 40, 50))
若是要將結果矩形化畫出來,能夠使用pygame.draw.rect函數。第一個參數填寫屏幕對象,第二參數爲矩形的顏色,第三個參數爲矩形對象,能夠填寫前面矩形結構中的一種。視頻
import pygame, sys # 初始化 pygame.init() # 設置屏幕的寬度,高度 SCREEN = pygame.display.set_mode((400, 300)) # 設置窗口的標題 pygame.display.set_caption('Hello World!') # 遊戲主循環 while True: # main game loop for event in pygame.event.get(): # 處理退出事件 if event.type == pygame.QUIT: pygame.quit() sys.exit() # 將屏幕的背景填充成白色,瞭解下RGB三原色 SCREEN.fill((255, 255, 255)) # 調用 pygame.display.update() 方法更新整個屏幕的顯示 pygame.draw.rect(SCREEN, (255, 0, 0), (20, 30, 100, 50)) pygame.display.update()
效果以下:
5、練習題
- 在(80, 60)位置畫出一個綠色,段度爲60,高度100的矩形。
- 在(180, 160)位置畫出一個藍色,半徑爲50的圓形。
pygame.draw.circle 原型:pygame.draw.circle(Surface, color, pos, radius, width=0): return Rect 用途:用於繪製圓形。第三個參數pos是圓心的位置座標,radius指定了圓的半徑。
- 畫一條紫色的直線, 起點爲(0, 80), 終點爲(70, 120)
pygame.draw.line 原型:pygame.draw.line(Surface, color, start_pos, end_pos, width=1): return Rect 用途:繪製直線段,start_pos 和 end_pos 分別表示起始點和終止點,用座標表示。width爲線條寬度,默認爲1。 本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈