在pygame中的矩形

时间:2015-04-12 00:21:35

标签: pygame

你能改变pygame中矩形一边的长度吗?

例如:

img = pygame.image.load('image.gif')
rect = img.get_rect()

在该示例中,我加载图像并在其周围创建一个矩形。考虑到这一点,我可以改变矩形底部的长度,而不改变矩形的任何其他边吗?

2 个答案:

答案 0 :(得分:2)

您可以使用PyGames Rect objects 存储直方坐标

正如@Tehsmeely所提到的,有许多所谓的虚拟属性可用于在游戏中移动或对齐Rect对象

Virtual Attributes of a PyGame Rect Object

当您想要将图像从文件加载到游戏中时,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

相关问题