你能改变pygame中矩形一边的长度吗?
例如:
img = pygame.image.load('image.gif')
rect = img.get_rect()
在该示例中,我加载图像并在其周围创建一个矩形。考虑到这一点,我可以改变矩形底部的长度,而不改变矩形的任何其他边吗?
答案 0 :(得分:2)
您可以使用PyGames Rect objects 存储直方坐标。
正如@Tehsmeely所提到的,有许多所谓的虚拟属性可用于在游戏中移动或对齐Rect对象:
当您想要将图像从文件加载到游戏中时,pygame.image.load()
函数会返回一个新的Surface对象,就像您的主屏幕一样。您可以使用.blit()
方法blit(即复制)此新表面对象到您想要的任何其他表面上:
.blit()
的第一个参数是源表面。
第二个参数可以是一对表示源表面左上角的坐标
或一个Pygame Rect对象,其中矩形的topleft一角将用作blit的位置。
目标矩形的大小不会影响blit 。
这意味着您可以更改rect
:
rect.width= 100
但这不会影响img
的大小。
我希望这会有所帮助:)
答案 1 :(得分:0)
看看这里:http://www.pygame.org/docs/ref/rect.html
rect只是这些东西的数据结构,您可以设置rect的以下任何属性
x,y
top, left, bottom, right
topleft, bottomleft, topright, bottomright
midtop, midleft, midbottom, midright
center, centerx, centery
size, width, height
w,h
只需在python shell中创建一个新的rect并进行游戏,你可以自己制作Rects
import pygame
rect = pygame.Rect((10,10),(20,20))
print rect.height
>>20
rect.height = 30
print rect.height
>>30
编辑: 如果您想要修改需要更改曲面的图像,这不会影响您加载的图像的显示方式,绘制到需要曲面和矩形的屏幕。或者通过绘制加载成像拉伸到一个增加的矩形会工作,请查看Surface.blit的解释,http://www.pygame.org/docs/ref/surface.html#pygame.Surface.blit