人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

Pygame Rect區(qū)域位置的使用(圖文)

發(fā)布日期:2021-12-10 09:14 | 文章來源:站長(zhǎng)之家

Rect(rectangle)指的是矩形,或者長(zhǎng)方形,在 Pygame 中我們使用 Rect() 方法來創(chuàng)建一個(gè)指定位置,大小的矩形區(qū)域。函數(shù)的語法格式如下:

rect =pygame.Rect(left,top,width,height) 

Rect 表示的區(qū)域必須位于一個(gè) Surface 對(duì)象之上,比如游戲的主窗口(screen)。上述方法由四個(gè)關(guān)鍵參數(shù)值構(gòu)成,分別是 left、top、width、height,為了方便大家理解這些距離的含義,下面給出了一張示意圖:

注意:在 Pygame 中以游戲主窗口的左上角為坐標(biāo)原點(diǎn)。

下面看一組簡(jiǎn)單的使用示例,如下所示:

import pygame
pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption('c語言中文網(wǎng)')
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
rect1 = pygame.Rect(50,50,100,100)
# 在原圖的基礎(chǔ)上創(chuàng)建一個(gè)新的子圖(surface對(duì)象)
image_child= image_surface.subsurface(rect1)
rect2 = image_child.get_rect()
#輸出的矩形大小為 100*100
print(rect2)
while True:
 for event in pygame.event.get():
  if event.type == pygame.QUIT:
exit()
 #在屏幕上顯示子圖的區(qū)域
 screen.blit(image_child,rect1)
 pygame.display.update()

程序的運(yùn)行結(jié)果如下:


圖1:程序運(yùn)行結(jié)果

從上述運(yùn)行結(jié)果可以看出,我們?cè)趫D片上截取了一個(gè)和 rect1 同樣大小的矩形區(qū)域(100*100)。

Rect(矩形區(qū)域)對(duì)象還提供了一些常用方法。如下表所示:

方法 說明
pygame.Rect.copy() 復(fù)制矩形
pygame.Rect.move() 移動(dòng)矩形區(qū)域,接受一個(gè)列表參數(shù)
pygame.Rect.move_ip() 移動(dòng)矩形(無返回)
pygame.Rect.inflate() 增大或縮小矩形大小
pygame.Rect.clamp() 將矩形移到另一個(gè)矩形內(nèi)
pygame.Rect.union() 返回一個(gè)兩個(gè)矩形合并后的矩形。
pygame.Rect.fit() 按縱橫比調(diào)整矩形的大小或移動(dòng)矩形。
pygame.Rect.contains() 測(cè)試一個(gè)矩形是否在另一個(gè)矩形內(nèi)
pygame.Rect.collidepoint() 測(cè)試點(diǎn)是否在矩形內(nèi)
pygame.Rect.colliderect() 測(cè)試兩個(gè)矩形是否重疊

同時(shí) Rect 對(duì)象也提供了一些關(guān)于矩形大小的常用的屬性,如下所示:

x,y  表示矩形距離 x、y 軸的距離
top, left, bottom, right #在坐標(biāo)系內(nèi)描述矩形的大小
topleft, bottomleft, topright, bottomright #返回一個(gè)描述矩形大小的元組
midtop, midleft, midbottom, midright #返回一個(gè)描述矩形大小的元組
center, centerx, centery #(centerx,centery)表示矩形中央坐標(biāo)(x,y)的值
size, width, height
w,h  #用于描述矩形的width、height

下面看一組簡(jiǎn)單的示例演示,如下所示:

import  pygame
# 對(duì)應(yīng)left/top/width/height
rect1 = pygame.Rect(0,0,100,100)
print('x的值是{};y的值是{}'.format(rect1.x,rect1.y))
print('bottom的值是{};right的值是{}'.format(rect1.bottom,rect1.right))
# 設(shè)置居中的距離
print(rect1.center,rect1.centerx,rect1.centery)
# 返回值為 (centerx,top)
print(rect1.midtop)
# 返回值為 (right,centery)的元組
print(rect1.midright)
# 返回值為(left,bottom)
print(rect1.bottomleft)
# 返回矩形區(qū)域大小,元組格式
print(rect1.size)

輸出結(jié)果如下:
x的值是0;y的值是0
bottom的值是100;right的值是100
#設(shè)置中心努力
(50, 50) 50 50
(50, 0)
#midright
(100, 50)
#bottomleft
(0, 100)
#size
(100, 100)

我們還可以通過屬性對(duì)來設(shè)置,或者者更改矩形區(qū)域的大小,如下所示:

rect1.left = 30 
rect1.center = (70,70)

除了通過 Rect 對(duì)象來構(gòu)造一個(gè)矩形區(qū)域之外,我們還可以使用rect屬性來構(gòu)建一個(gè)矩形區(qū)域。在 Pygame 中有許多函數(shù)都提供了rect屬性,比如有下列函數(shù):

surface.fill((0,0,255),rect=(100,100,100,50))

上述代碼會(huì)在 surface 對(duì)象的區(qū)域內(nèi)選定一個(gè) rect 區(qū)域,并將該區(qū)域填充為藍(lán)色(RGB(0,0,255))。

到此這篇關(guān)于Pygame Rect區(qū)域位置的使用(圖文)的文章就介紹到這了,更多相關(guān)Pygame Rect區(qū)域位置內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部