Угол отсутствует на прямоугольнике - PullRequest
3 голосов
/ 04 апреля 2020

Работая над своей игрой, я заметил, что при рендеринге прямоугольников иногда правые нижние углы просто обрезаются на один пиксель.

Обратите внимание на отсутствующие пиксели на серых полях.

У меня есть класс Box, который обновляет каждый кадр:

class Box:
    def __init__(self, x, y, width, height):
        self.rectbox = pyg.Rect(x, y, width, height)
    def update(self):
        pyg.draw.rect(screen, light_gray, self.rectbox) # Main box
        pyg.draw.rect(screen, black, self.rectbox, 2) # Box outline
    def getRect(self):
        return self.rectbox

Это моя ошибка или как Pygame отображает прямоугольники?

1 Ответ

3 голосов
/ 04 апреля 2020

Кажется, это просто при рисовании прямоугольников с контуром. Простое исправление состоит в том, чтобы нарисовать solid черный прямоугольник и немного меньший прямоугольник light_gray поверх него

class Box:
    def __init__(self, x, y, width, height, w):
        self.rectbox_outline = pyg.Rect(x, y, width, height) 
        self.rectbox_main = pyg.Rect(x+w//2,y+w//2,width-w,height-w)
    def update(self):
        pyg.draw.rect(screen, black, self.rectbox_outline) # Box outline
        pyg.draw.rect(screen, light_gray, self.rectbox_main) # Main box
    def getRect(self):
        return self.rectbox
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...