有没有办法控制pygame中矩形的大小?

时间:2016-05-12 19:14:33

标签: python pygame

我正在使用此代码在图片

中绘制矩形
def __init__(self):
    pygame.sprite.Sprite.__init__(self)
    self.image=pygame.image.load(os.path.join(image_folder,"Player.png"))
    self.rect = self.image.get_rect()
    self.vel_x = 0
    self.speed = 30
    self.friction = 3.5
    self.rect.center = (420,360)
    self.delta = clock.tick(FPS) / 1000.00

但方法 get_rect()正在整个加载的图像上绘制矩形,就像这样 enter image description here

我希望它像这样 enter image description here

2 个答案:

答案 0 :(得分:2)

你可以创建一个你知道船体的矩形,如果船体每次都在同一个地方并且大小相同

self.rect = pygame.Rect(hulltop,hullleft,hullwidth,hullheight)

在您的情况下,hullwidth可能是图片宽度,而hullheight看起来就像图片高度减去hulltop

如果您有不同的船体,您可以考虑将船体和桅杆/帆放在单独的图像文件中,创建船体轮廓,然后加入图像。或者,您可以创建不同船体尺寸的字典,并使用它来确定要绘制的矩形的大小和位置。

答案 1 :(得分:1)

您正在获取图片的Rect。如果您希望使用不同大小的Rect,则需要创建一个<?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight"> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#FFFFFF"/> </shape> </item> </ripple>