Как мне сделать так, чтобы прямоугольник в pygame располагался посередине [дубликат]

avatar
bananaboss
6 августа 2021 в 06:04
349
1
0

Пока я изучал pygame, я заметил, что верхний левый угол считается точкой, в которой находится прямоугольник. Из-за этого я действительно не понимаю, как расположить прямоугольник посередине экрана.

Вот код, который я использую:

import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((600,600))
pygame.display.set_caption("Basic shapes")
yellow = (255,255,0)
black = (0,0,0)
blue = (0,0,255)
while True:
    screen.fill(yellow)
    pygame.draw.rect(screen,black,(300,300,200,100))
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            exit()
    pygame.display.update()
Источник

Ответы (1)

avatar
Starbuck5
6 августа 2021 в 06:11
2

Один простой способ сделать это — создать объект Rect желаемой ширины и высоты, а затем установить атрибут center, чтобы переместить центр прямоугольника в нужное место.

rect = pygame.Rect(0, 0, 200, 100)
rect.center = (300, 300)
pygame.draw.rect(screen, black, rect)

(300 300), потому что это центр экрана.

У людей часто есть переменные для представления размера экрана, такие как SCREEN_WIDTH и SCREEN_HEIGHT, поэтому, если вы реализовали это, вы могли бы сделать что-то вроде

SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
...
rect.center = (SCREEN_WIDTH/2, SCREEN_HEIGHT/2)