2014-01-06 159 views
0

所以我在pygame中的精灵都具有相同的碰撞效果,即使你我把它们分成不同的defs你知道我该如何解决这个问题吗?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)) 
+0

C++重载在Python中不起作用 – volcano

回答

0

看来你有两个方法在你的精灵类中有相同的名字“渲染”。

在这种情况下,Python会忽略第一个方法(具有collisionrock参数)并且只使用第二个定义。这似乎是这种情况。

您可以将第一个“渲染”重命名为“render_with_rock_collision”,第二个“渲染”重命名为“render_with_guy_collision”。

还有一件事。取而代之的

if (collisionguy==True): 

你可以写:

if collisionguy: 

让吉多·范罗苏姆高兴。