開發工具:VS Codecanvas
1.程序功能介紹數組
機隨機將52張牌(不含大王和小王)發給四位牌手,在屏幕上顯示每位牌手的牌,程序的運行如圖3所示。接下來,咱們以使用Canvas繪製Tkinter模塊圖形爲例,介紹創建簡單GUI(圖形用戶界面)遊戲界面的方法。框架
2.程序設計思路函數
將要發的52張牌,按梅花0~12,方塊13- 25,紅桃26- 38,黑桃39- 51的順序編號並存儲在pocker列表c未洗牌以前l,列表元素存儲的是某張牌c其實是牌的編號)。同時,按此編號將撲克牌圖片順序存儲在imgs列表中。也就是說,imgs[0]存儲梅花A的圖片,imgs[1]存儲梅花2的圖片,imgs[14]存儲方塊2的圖片,依次類推。工具
發牌後,根據每位牌手(pl,p2,p3,p4)各自牌的編號列表,從imgs獲取對應牌的圖片,並使用create- image《x座標,y座標),image=圖像文件)將牌顯示在指定位置。佈局
3.Canvas圖形繪製技術開發工具
Canvas爲Tkinter提供了繪圖功能,其提供的圖形繪製函數可繪製線形、圓形、橢圓、多邊形、圖片等。設計
Canvas畫布組件對象
Canvas(畫布)是一個長方形的區域,用於圖形繪製或複雜的圖形界面佈局。用戶以在畫布上繪製圖形、文字,放置各類組件和框架。blog
可使用下面的方法建立一個Canvas對象。
Canvas對象囂Canvas (窗口對象+ 選項+ …)
顯示Canvas對象的方法以下。
Canvas對象。pack()
Canvas上的圖形對象
1.繪製圖形對象
在Canvas畫布上能夠繪製各類圖形對象,經常使用繪製函數以下。
create_arc():繪製圓弧。
create_line():繪製直線。
create_bitmap():繪製位圖。
create_image():繪製位圖圖像。
create_oval():繪製橢圓。
create_polyon():繪製多邊形
create_window():繪製子窗口。
create_text():建立一個文字對象。
Canvas上的每一個繪製對象都有一個標識id(整數),使用繪製函數建立繪製對象時,返回繪製對象的id。
idl=cv. create line (10,10,100,80+width=2,dash^-7)月並繪製直線
idl能夠獲得繪製對象直線的id。
在建立圖形對象時,可使用屬性tags設置圖形對象的標記(tag),例如:
rt = cv. create _rectangle (10, 10, 110, 110,tags =('r1','r2','r3'))
指定標記後,使用find withtag()方法能夠獲取指定tag的圖形對象,而後設置圖形對象的屬性。find withtag()方法的語法以下:
Canvas對象.find withtag (tag名)
find withtag()方法返回一個圖形對象數組,其中包含全部具備tag名的圖形對象。
使用itemconfig()方法能夠設置圖形對象的屬性,語法以下:
Canvas對象. itemconfig (圖形對象,屬性1=值1+屬性2=值2,…)
繪製圓弧
使用create_arc()方法能夠建立一個圓弧對象,圓弧對象能夠是一個弓形、扇形或者一個簡單的弧,具體語法以下:
Canvas對象.create_arc(弧外框矩形左上角的x座標+弧外框矩形左上角的y座標,弧外框矩形右下角的x座標+弧外框矩形右下角的y座標,選項,…)
建立圓弧對象時的經常使用選項: outline指定圓弧邊框顏色,fill指定填充顏色,width指定圓弧邊框的寬度,start表明 起始角度,extent表明指定角度偏移量而不是終止角度。
繪製線條
使用create_line()方法能夠建立一個線條對象,具體語法以下:
line 薑 canvas.create一 line (x0, y0, xl, yl, ¨,+ xn,’ yn, 選項)
參數x0、y0、x一、y一、……、xn、yn是線段的端點。
建立線段對象時的經常使用選項:width指定線段寬度,arrow指定是否使用箭頭t none表示沒有箭頭,first表示起點有箭頭,last表示終點有箭頭,both表示兩端有箭頭),fill指定線段顏色,dash指定線段爲虛線(其整數值決定虛線的樣式)。
繪製矩形
使用create_rectangle()方法能夠建立矩形對象。具體語法以下:
Canvas對象.create_rectangle(矩形左上角的x座標,矩形左上角的y座標,矩形右下角的x座標,矩形右下角的y座標,選項,…)
建立矩形對象時的經常使用選項: outline指定邊框顏色,fill指定填充顏色,width指定邊框的寬度,dash指定邊框爲虛線,stipple使用指定自定義畫刷填充矩形。
繪製多邊形
使用create_polygon()方法能夠建立一個多邊形對象,多邊形對象能夠是一個三角形、矩形或者任意一個多邊形,具體語法以下:
Canvas對象.create-polygon(頂點1的x座標,頂點1的y座標,頂點2的x座標,頂點2的y座標, …,頂點n的x座標,頂點n的y座標,選項,…)
建立多邊形對象時的經常使用選項: outline指定邊框顏色,fill指定填充顏色,width指定邊框的寬度,smooth指定多邊形的平滑程度(o表示多邊形的邊是折線,1表示多邊形的邊是平滑曲線)。
繪製橢圓
使用create_oval()方法能夠建立一個橢圓對象,具體語法以下:
Canvas對象.create oval(包裹橢圓的矩形左上角x座標,包裹橢圓的矩形左上角y座標。包裹橢圓的矩形右下角x座標,包裹橢圓的矩形右下角y座標,選項,…)
建立橢圓對象時的經常使用選項:outline指定邊框顏色,fill指定填充顏色,width指定邊框的寬度。若是包裹橢圓的矩形是正方形,則繪製的是一個圓形。
繪製文字
使用create_text()方法能夠建立一個文字對象,具體語法以下:
文字對象= Canvas對象.create text((文本左上角的x座標,文本左上角的y座標),選項,…)
建立文字對象時的經常使用選項: text是文字對象的文本內容,fill指定文字顏色,anchor控制文字對象的位置(其中,'W'表示左對齊,’e,表示右對齊,’n’表示頂對齊,,s,表示底對齊,’nw,表示左上對齊,’sw’表示左下對齊,,se,表示右下對齊,,ne嚷示右上對齊,,center,表示居中對齊,anchor默認值爲,center'),justify設置文字對象中文本的對齊方式(其中,’left'表示左對齊,’right’表示右對齊,’center’表示居中對齊,justify默認值爲’center')。
select from()方法用於指定選中文本的起始位置,具體用法以下:
Canvas對象.select-from(文字對象,選中文本的起始位置)
select_to()方法用於指定選中文本的結束位置,具體用法以下:
Canvas對象.selectto(文字對象,選中文本的結束位置)
繪製位圖和圖像
繪製位圖 使用create bitmap()方法能夠繪製Python內置的位圖,具體方法
Canvas對象。create_bitmap((x座標,y座標),bitmap=位圖字符串,選項, …)
其中:(x座標,y座標)是位圖放置的中心座標;經常使用選項有bitmap、activebitmap和出sabledbitmap,分別用於指定正常、活動和禁用狀態顯示的位圖。
繪製圖像
在遊戲開發中須要使用大量圖像,採用create bitmap()方法能夠繪製圖形、圖像,具體方法以下:
Canvas對象.create image((x座標,y座標), image=圖像文件對象+ 選項, …)
其中:(x座標,y座標)是圖像放置的中心座標;經常使用選頂有unage、activeimage和disabled image,分別用於指定正常、活動和禁用狀態下顯示的圖像。
注意:使用PhotoImage函數可獲取圖像文件對象。
img1=PhotoImage(file =圖像文件)
修改圖形對象的座標
使用coords()方法能夠修改圖形對象的座標,具體方法以下:
Canvas對象.coords(圖形對象, (圖形左上角的x座標,圖形左上角的y座標,圖形右下角的x座標,圖形右下角的y座標))
由於能夠同時修改圖形對象的左上角的座標和右下角的座標,因此能夠縮放圖形對象。
注意:若是圖形對象是圖像文件,則只能指定圖像中心點座標,而不能指定圖像對象左上角的座標和右下角的座標,故不能縮放圖像。
移動指定圖形對象
使用move()方法能夠修改圖形對象的座標,具體方法以下:Canvas對象.move (圖形對象, x座標偏移量, y座標偏移量)
刪除圖形對象
使用delete()方法能夠刪除圖形對象,具體方法以下:
Canvas對象.delete (圖形對象)
縮放圖形對象
使用scale()方法能夠縮放圖形對象,具體方法以下:
Canvas對象.scale(圖形對象, x軸偏移量,y軸偏移量,x軸縮放比例,y軸縮放比例)
4.參考代碼
5.運行結果