PyGame Rect принимает четыре аргумента ( x, y, width, height )
. Ваша hitbox()
функция возвращает прямоугольник, определенный как ( x1, y1, x2, y2 )
.
. Возможно, наилучшим подходом было бы вернуть Rect из вашей функции. Это также позволит вам использовать отличные функции обработки столкновений PyGame Rect .
BOX_WIDTH = 100
BOX_HEIGHT = 100
def hitbox(self):
# Create the box at 0,0 with correct size
box_rect = pygame.Rect( 0, 0, BOX_WIDTH, BOX_HEIGHT )
# transpose it around the current position
box_rect.center = ( self.x, self.y )
return box_rect
А затем нарисовать Rect:
pygame.draw.rect( screen, ( 122, 122, 0 ), self.hitbox(), 3 )
Я думаю, что это будет Хорошей идеей будет сохранить Rect в качестве члена класса. Затем, чтобы переместить спрайт, просто обновите объект self.box_rect
напрямую.