'TypeError: ожидается целочисленный аргумент, получен float' - PullRequest
2 голосов
/ 30 мая 2019

Я играю в игру на python, и у меня есть одна ошибка

Ожидается целочисленный аргумент, получен float

, и я не понимаю, почему.Строка, которая выдает мне ошибку:

pygame.draw.circle(screen, (128, 128, 128), 
    (self.location[0]-1, self.location[1]-1), self.size+1)
class Player(object):
    def __init__(self, name, colour):
        self.name = name
        self.colour = colour
        self.level = 1
        self.feed = 0
        self.size = 2
        self.speed = 6
        self.location = (SCREEN_SIZE[0]/2, SCREEN_SIZE[1]/2)
        self.destination = self.location
        self.stopDis = 5    #Stopping distance

    def render(self, screen):
        pygame.draw.circle(screen, (128, 128, 128),
            (self.location[0]-1, self.location[1]-1), self.size+1)  #Error here
        pygame.draw.circle(screen, self.colour, self.location, self.size)   #Draw circle

1 Ответ

3 голосов
/ 30 мая 2019

3-й параметр для pygame.draw.circle должен быть интегральной координатой (кортеж (x, y)), но результат деления (/) является значением точки с плавающей точкой.

Используйте int или round для приведения self.location из значений с плавающей запятой к целым значениям:

pygame.draw.circle(screen, (128, 128, 128), 
    (int(self.location[0]-1), int(self.location[1]-1)), self.size+1)

Или выполните целочисленное деление (//) вместо деления с плавающей запятой (/) при вычислении self.location:

self.location = (SCREEN_SIZE[0] // 2, SCREEN_SIZE[1] // 2)

См. Также Числовые типы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...