У меня есть работающая программа, но если я изменю свой конструктор / функцию pygame.Rect (), то моя программа аварийно завершится.
Если вы посмотрите на приведенный ниже код, то
button_rect1 = pygame.Rect(450, 300, 100, 100)
работает просто отлично. Но если я изменю его на
button_rect2 = pygame.Rect(left = 450, top = 300, width = 100, height = 100)
, то получу ошибку:
Traceback (most recent call last):
File "F:\_python_projects\workshift_logger\component_testing.py", line 31, in <module>
button_rect = pygame.Rect(left = 450, top = 300, width = 100, height = 100)
TypeError: Argument must be rect style object
[Finished in 0.7s with exit code 1]
Единственное, что я изменил, - это добавление имен к аргументам. Почему я не могу это сделать, и как я могу изменить свой код, чтобы я мог назвать свои аргументы (я хочу назвать их для ясности - в некоторых API прямоугольники (x, y, width, height), в других они (x1, y1, x2, y2)):
Вот минимальный автономный пример:
##### Imports ######
import pygame
##### Settings #####
window_width = 1000
window_height = 600
##### Program #####
pygame.init()
window = pygame.display.set_mode((window_width, window_height))
button_rect1 = pygame.Rect(450, 300, 100, 100) # This works
button_rect2 = pygame.Rect(left = 450, top = 300, width = 100, height = 100) # This doesn't work