中文編程pygame游戲教程3_繪制圖形


(賬號(hào)主頁(yè)有同名詳細(xì)介紹視頻, 請(qǐng)結(jié)合觀看)
pygame.繪圖.方法名()可以在表層對(duì)象上繪制各種簡(jiǎn)單的形狀, 比如屏幕表層.
矩形
多邊形
圓
橢圓
這些函數(shù)的共同點(diǎn)是:
將表層(Surface)對(duì)象作為第一個(gè)參數(shù)
將顏色作為第二個(gè)參數(shù)
將寬度參數(shù)作為最后一個(gè)參數(shù)
返回一個(gè)保存了位置信息的區(qū)塊(Rect)對(duì)象,
寬度參數(shù): 如果寬度為 0,則填充形狀。否則為形狀的線條輪廓粗細(xì)程度.
繪制矩形
下面首先繪制背景顏色,然后添加三個(gè)重疊的實(shí)心矩形, 在它旁邊有三個(gè)線寬增加的平行重疊矩形:
你可以嘗試修改參數(shù)并使用繪圖功能。
繪制實(shí)心和輪廓橢圓
下面的代碼首先繪制背景色,然后添加三個(gè)重疊的實(shí)心橢圓 在它旁邊有三個(gè)線寬增加的平行重疊橢圓:
檢測(cè)鼠標(biāo)
按下鼠標(biāo)按鈕將生成?鼠標(biāo)按下事件?和?鼠標(biāo)松開事件?事件。 移動(dòng)鼠標(biāo)會(huì)產(chǎn)生鼠標(biāo)移動(dòng)事件. 我們可以在代碼中使用下面的方式檢測(cè)到這些事件:
用鼠標(biāo)繪制一個(gè)矩形
我們可以利用這三個(gè)事件在屏幕上畫一個(gè)矩形。 我們通過(guò)對(duì)角線起點(diǎn)和終點(diǎn)來(lái)定義矩形。 我們還需要一個(gè)標(biāo)志來(lái)指示鼠標(biāo)按鈕是否按下以及我們是否正在繪制:
當(dāng)按下鼠標(biāo)按鈕時(shí),我們將開始點(diǎn)設(shè)置為當(dāng)前鼠標(biāo)位置, 并標(biāo)記繪圖模式已啟動(dòng)的標(biāo)志:
當(dāng)鼠標(biāo)按鈕被松開釋放時(shí),我們?cè)O(shè)置結(jié)束點(diǎn), 并用標(biāo)志指示繪圖模式已結(jié)束:
當(dāng)鼠標(biāo)移動(dòng)時(shí),我們還必須檢查我634119們是否在 繪圖模式。如果是,我們將結(jié)束位置設(shè)置為當(dāng)前鼠標(biāo)位置:
最后,我們將矩形繪制到屏幕上。注意要在填充背景色后, 更新屏幕之前:
g.繪圖.矩形(屏幕, 'blue', (開始點(diǎn), 大小), 1)
繪制多個(gè)形狀
上面的代碼一次只能繪制一個(gè)矩形, 要繪制多個(gè)形狀,我們需要將它們放入列表中。除了之前的變量之外,我們還添加一個(gè)矩形列表:
繪制對(duì)象(矩形、圓形等)時(shí),在鼠標(biāo)松開事件?中,我們創(chuàng)建一個(gè)矩形并將其附加到矩形列表中:
填充背景顏色之后,遍歷矩形列表繪制對(duì)象, 同時(shí)我們換一種顏色繪制當(dāng)前正在繪制的矩形:
這是完整的文件:
用鼠標(biāo)畫多邊形
要繪制多邊形,我們需要將點(diǎn)添加到點(diǎn)列表中。首先,我們定義一個(gè)空點(diǎn)列表和一個(gè)繪圖標(biāo)志:
在?鼠標(biāo)按下事件中,我們將當(dāng)前點(diǎn)添加到列表中,然后 將標(biāo)志設(shè)置為 真:
在?鼠標(biāo)松開事件中,我們停用該標(biāo)志:
在?鼠標(biāo)移動(dòng)事件中,我們?cè)O(shè)置多邊形列表中的最后一個(gè)點(diǎn) 為當(dāng)前鼠標(biāo)位置:
如果點(diǎn)列表中有超過(guò) 2 個(gè)點(diǎn),我們繪制一條多邊形線。 每個(gè)函數(shù)返回一個(gè)邊界矩形。 我們以綠色顯示此邊界矩形
再增加一個(gè)小功能, 按 ESCAPE 鍵可以刪除列表中的最后一個(gè)點(diǎn):
這是完整的文件: