2015-04-16 2 views
0

От «для стены в стенах» и далее все «я» в красном подчеркнуто?Почему не нравится «я»?

class Player(object): 
    def __init__(self): 
     self.rect = pygame.Rect(x,y,16,16) 

    def move(self, dx, dy): 
     if dx != 0: 
      self.move_dir(dx, 0) 
     if dy != 0: 
      self.move_dir(0, dy) 

    def move_dir(self, dx, dy): 
     self.rect.x = self.rect.x + dx 
     self.rect.y = self.rect.y + dy 

#^it accepts all of this... 
# but none of the following... 

    for wall in walls: 
     if self.rect.colliderect(wall.rect): 
      if dx > 0: 
       self.rect.right = wall.rect.left 
      if dx < 0: 
       self.rect.left = wall.rect.right 
      if dy > 0: 
       self.rect.bottom = wall.rect.top 
      if dy < 0: 
       self.rect.top = wall.rect.bottom 

     for spike in spikes: 
      if self.rect.colliderect(spike.rect): 
       self.rect.x = 16 
       self.rect.y = 16 

     if player.rect.colliderect(portal_rect): 
      self.rect.x = 528 
      self.rect.y = 144 

     if player.rect.colliderect(portal_rect1): 
      self.rect.x = 176 
      self.rect.y = 208 

не связаны, но он также имеет проблемы с portal_rect

+0

- вторая часть в определении вашего класса? 'self' определяется только внутри определения класса –

+0

Это фактический отступ? Вставка обычного текста в середине действительно не помогает очистить это ... – jonrsharpe

+0

, пожалуйста, напишите один код, который демонстрирует проблему ... не разбивайте его на куски, он должен быть небольшим. как бы то ни было, я бы предположил, что ваш отступ сломан ... –

ответ

2

вопросы на вдавливание!

class Example(object): 

    def some_method(self): 
     # we are inside 'some_method' so 'self' is valid 
     self.a = 1 

    # we are no longer inside a method so 'self' is not valid 
    self.b = 2 
Смежные вопросы