pygame.draw.rect не может обрабатывать операции между значением в кортеже и целым числом, но любая другая функция может - PullRequest
0 голосов
/ 22 октября 2018

В моей программе я пытаюсь найти координаты Rect, который содержит текст, который будет отображаться на экране.Когда я пытаюсь использовать pygame.draw.rect и вычитать число из одной из координат Rect, я получаю ошибку, которая говорит о том, что я не могу выполнять операции с кортежами.Однако, когда я попытался напечатать это, это обнаружилось без каких-либо ошибок.Код мог бы лучше объяснять

while True:
        ###
        text1, text1_rect = gameFont.render("Start", (255,255,255))
        text2, text2_rect = gameFont.render("Continue", (255,255,255))
        text3, text3_rect = gameFont.render("Quit", (255,255,255))
        text1_rect.center = (WIDTH/2, 400)
        text2_rect.topleft = (text1_rect.x,text1_rect.y + 50)
        text3_rect.topleft = (text1_rect.x,text2_rect.y + 50)
        ###
        screen.fill(BLACK) # Scroll right to read message --> 
        pygame.draw.rect(screen, (255,255,255), (text1_rect.x - 10,text1_rect.center-3,6,6)) # When I say text1_rect.x - 10, it raises an error. If I put this into print(), it returns a value without the error.
        screen.blit(text1, text1_rect)
        screen.blit(text2, text2_rect)
        screen.blit(text3, text3_rect)
        pygame.display.update()

Эта строка - то, о чем я говорил:

text1_rect.x - 10

Когда помещено в pygame.draw.rect, ошибка.Но когда я его печатаю, ошибок нет.Что на Земле происходит?

1 Ответ

0 голосов
/ 22 октября 2018

Вы помещаете аргументы в кортеж.Попробуйте вместо этого использовать список.Также я уверен, что вам нужно добавить еще один аргумент для толщины линии.

Заменить

pygame.draw.rect(screen, (255,255,255), (text1_rect.x - 10,text1_rect.center-3,6,6))

на

pygame.draw.rect(screen, (255, 255, 255), [text1_rect.x - 10,text1_rect.center-3,6,6], 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...