最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

中文編程pygame游戲教程4_區(qū)塊定位

2023-08-23 09:56 作者:52中文編程  | 我要投稿

區(qū)塊(Rect)是圖形編程中非常有用的對象。 它在 Pygame 中有自己的類區(qū)塊類,能夠存儲和操作矩形區(qū)域的位置信息。 可以通過提供以下內(nèi)容來創(chuàng)建對象:

  • 左、頂、寬、高4個參數(shù)

  • 位置和大小

  • 具有 rect 屬性的對象

新建一個區(qū)塊對象可以使用上面的任一個寫法. 對于表層對象, 可以直接用獲取區(qū)塊的方法獲取默認的位置信息(默認坐標是0,0)
例如, 第2課移動的小球的區(qū)塊用下面的代碼獲取區(qū)塊對象不需要新建, 利用區(qū)塊對象可以方便的定位小球的位置到屏幕的中心.

虛擬屬性

Rect 對象有幾個可以使用的虛擬屬性用來移動和對齊區(qū)塊。 分配給這些屬性只是移動區(qū)塊的位置而不更改其大?。?/p>

x, y
頂(top), 左(left), 底(bottom), 右(right)
頂左(topleft), 底左(bottomleft), 頂右(topright), 底右(bottomright)
中頂(midtop), 中左(midleft), 中底(midbottom), 中右(midright)
中心(center), 中心x(centerx), 中心y(centery)

下面的屬性的分配通過保持區(qū)塊的左上角位置來更改區(qū)塊的大小。
尺寸(size), 寬度(width), 高度(height)

以下程序準備繪制一個矩形, 將其位置和大小新建一個區(qū)塊對象, 并將這些虛擬屬性打印到控制臺:

標記點

區(qū)塊Rect 類定義 4 個角點、4 個中點和 1 個中心點。
下面的代碼繪制一個矩形并標記這些點:

水平和垂直對齊

在下面的示例中,我們使用鍵盤的按鍵將矩形水平對齊:

  • 按鍵L - 左

  • 按鍵C - 中心

  • 按鍵R - 右

和其他 3 個鍵來垂直對齊矩形:

  • 按鍵T - 頂部

  • 按鍵M - 中

  • 按鍵B - 底部

注意把輸入法設(shè)為英文按鍵才能起作用.

使用按鍵移動區(qū)塊

區(qū)塊對象有兩個移動方法:?移動(x,y)會返回一個新的區(qū)塊對象,?移動_ip(x,y)會刷新區(qū)塊的位置信息, 沒有返回數(shù)據(jù).下面的代碼都會讓矩形向右移動100個像素(第二個參數(shù)0代碼中y軸方向上保持不變):

矩形區(qū)塊 = g.區(qū)塊類(0, 0, 200, 80) ?# 默認在屏幕左上角矩形區(qū)塊=矩形區(qū)塊.移動(100,0) ?# 現(xiàn)在會右移100像素# 矩形區(qū)塊.移動_ip(100,0) ?# 這一行代碼與上面作用相同# 下面的代碼應(yīng)該在循環(huán)中, 屏幕刷新之前g.繪圖.矩形(屏幕, 'blue', 矩形區(qū)塊, 4)

接下來的我們使用鍵盤的上下左右按鍵移動矩形, 上一個對齊矩形例子用了很多if語句導致代碼過長, 這一次我們使用字典簡化一下, 把上下左右按鍵對應(yīng)的移動距離保存到字典中. 對于每個方向,移動為 5 個像素:


下面是完整代碼, 可以看到使用這個方法大大簡化了代碼量:

運行上面代碼, 按鍵上下左右可以移動矩形的位置.

縮放矩形

與移動方法類似,?縮放(x,y)縮放_ip(x,y)可以按矢量增大或縮小區(qū)塊對象。 以下程序使用 4 個箭頭鍵來更改矩形的大小。 藍色細矩形是原始矩形,紅色粗矩形是更改的矩形。為了便于觀察, 我們利用區(qū)塊的中心屬性將矩形放在屏幕中心.

裁剪和聯(lián)合

區(qū)塊0.裁剪(區(qū)塊1)該方法返回一個新區(qū)塊,它是兩個區(qū)塊的交集。
區(qū)塊0.聯(lián)合(區(qū)塊1)該方法返回一個新矩形,它是兩個區(qū)塊的并集。

下面的程序顯示了紅色和藍色輪廓的兩個矩形。 綠色矩形是交集區(qū)域。 黃色矩形是兩個矩形的并集。按上下左右移動紅色矩形可以看到交集和并集區(qū)域的變化.


中文編程pygame游戲教程4_區(qū)塊定位的評論 (共 條)

分享到微博請遵守國家法律
惠水县| 乐昌市| 虹口区| 岚皋县| 蒙阴县| 西安市| 松江区| 黎城县| 阳高县| 吕梁市| 九江市| 洛南县| 中江县| 临沧市| 静宁县| 玉田县| 永清县| 绥化市| 安阳市| 丰都县| 玛曲县| 疏附县| 高雄市| 新乐市| 区。| 镇原县| 成安县| 九寨沟县| 阿勒泰市| 香格里拉县| 西城区| 绥阳县| 礼泉县| 太湖县| 郑州市| 新昌县| 微博| 浏阳市| 建平县| 江达县| 红安县|