【问题标题】:Pygame rect.centre attributePygame rect.center 属性
【发布时间】:2021-07-16 10:25:50
【问题描述】:

所以这里是pygame python代码的两部分:

a = self.img.get_rect(topleft = (self.x, self.y))
print(a.topleft)

这段代码的输出是:

(200, 189)

另一个pygame代码:

a = self.img.get_rect(topleft = (self.x, self.y)).center
print(a)

这段代码的输出:

(234, 213)

注意:The value of self.x is 200 and self.y is 200

所以现在我的问题是,在我们将 .center 放在 pygame rect object or the variable a 之后,当我打印 a 的值时它会发生什么变化以及 .center 在 pygame rect 对象之后有什么作用?

【问题讨论】:

    标签: python python-3.x object pygame rect


    【解决方案1】:

    pygame.Surface.get_rect.get_rect() 返回一个具有 Surface 对象大小的矩形,但它返回一个始终从 (0, 0) 开始的矩形,因为 Surface 对象具有没有立场。矩形的位置可以由关键字参数指定。例如,可以使用关键字参数topleft 指定矩形的左上角。

    pygame.Rect 对象具有各种虚拟属性:

    Rect 对象有几个虚拟属性,可以用来移动和对齐 Rect:

    x,y
    top, left, bottom, right
    topleft, bottomleft, topright, bottomright
    midtop, midleft, midbottom, midright
    center, centerx, centery
    size, width, height
    w,h
    

    你实际上设置了一个矩形的左上角,图片的大小:

    self.img.get_rect(topleft = (self.x, self.y))
    

    最后,你通过读取center 属性得到这个矩形的中心点。由于图片大小不为0,所以centertopleft不同。

    【讨论】:

    • 好的,所以 x 的中心是 self.x + self.img.get_width()/2
    • @Rajarshi 是的。阅读文档将解决您的所有问题:`pygame.Rect´
    • 但我有一个问题,为什么我们要使用 .centre
    • @Rajarshi 当您想要设置或获取图像的中心时,您使用中心。例如当你想在屏幕上居中一个矩形时。
    • 好的,但是我们可以简单地通过 self.x + self.img.get_width()/2 得到图像的中心
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    相关资源
    最近更新 更多