self.setting.screen_rect.center
- центр большого экрана. Но текст на экране не blit
, а маленький text_surface
.
self.text_surface.blit(self.text,self.text_rect)
Размер text_surface
равен (400, 100), но центр self.text_rect
равен (600, 400).
Если вы сделаете
self.text_surface_rect.center = self.setting.screen_rect.center
[...]
self.text_rect.center = self.text_surface_rect.center
, тогда self.text_surface_rect
имеет местоположение, которое далеко от границы self.text_surface
. Центр экрана (self.setting.screen_rect.center
) - (600, 400). Но размер text_surface равен (400, 100).
+--------------+
| text_surface |
+--------------+
size: (400, 100)
+----------+
| text_rect| center: (600, 400)
+----------+
Примечание text_surface_rect
равно (400, 350, 400, 100)
, но text_surface
является объектом Surface и не имеет местоположения, которое имеет только размер из (400, 100). Вы можете думать об этом как о прямоугольнике (0, 0, 400, 100).
Текст blit
в text_surface
, а не text_surface_rect
.
Вы должны вычислить местоположение относительно self.button_surface_rect
, а не self.setting.screen
:
self.text_surface_rect.center = (self.setting.screen_rect.centerx - self.button_surface_rect.x,
self.setting.screen_rect.centery - self.button_surface_rect.y)