PyGame Sprite конфликтующие коллизии

Так что все мои спрайты в Pygame имеют одинаковые эффекты столкновения, даже если я разделил их на разные определения. Знаете, как я мог это исправить?

def render(self,collisionrock):

    if (collisionrock==True):
        pygame.draw.rect(window,red,(150,150,100,100))   #for some reason this wont work
        window.blit(self.i1, (self.x,self.y))

def render(self,collisionguy):

    if (collisionguy==True):
        font = pygame.font.Font(None, 50)
        text = font.render("YOU WIN", 1, (10, 10, 10))   #they would all apply this line
        textpos = text.get_rect()                        #of code
        textpos.centerx = window.get_rect().centerx
        window.blit(text, textpos)

        window.blit(self.i1, (self.x,self.y))
    else:
        window.blit(self.i1, (self.x,self.y))

1 ответ

Решение

Кажется, у вас есть два метода с одним и тем же именем render в вашем классе спрайтов.

В этом случае Python проигнорирует первый метод (который имеет аргумент collisionrock) и будет использовать только второе определение. Кажется, это так.

Вы можете переименовать первый "render" в "render_with_rock_collision", второй "render" в "render_with_guy_collision".

И еще одна вещь. Вместо

if (collisionguy==True):

ты можешь написать:

if collisionguy:

Делает Гвидо Ван Россума счастливым.

Другие вопросы по тегам