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:
Делает Гвидо Ван Россума счастливым.