2016-07-20 4 views
0

i`m пытается сделать игру, но эта ошибка происходит с моим столкновением четкостьюTypeError: объект «NoneType» не может быть вызван, как я могу его решить?

Вот код:

def colisao(espeto): 
    for b in range(len(espeto)) : 
    if player.collided(espeto[b]): 
     if b == 0 : 
      espeto [0].x = janela.width/2 
      espeto [0].y = janela.height - espeto [0].height 
     elif b == 1: 
      espeto [b].y = janela.height - espeto [0].height 
      espeto [b].x = espeto [0].x + janela.width/3 

     elif b != 1: 
      espeto [b].y = janela.height - espeto [0].height 
      espeto [b].x = janela.width/2 + espeto [b - 1].x 

тогда я положил в цикле игр этой функции

is_colliding = colisao(espeto_f1) 

и когда я выполняю, это происходит:/

PS: Извините за плохой английский, я изучаю язык, но

+0

Не могли бы вы предоставить полную трассировку стека? Полное сообщение об ошибке? – mwm314

+0

Является ли пространство между espeto и [0] и espeto и [b] на самом деле? Если это так, вам нужно удалить его. Кроме того, в python вы можете фактически перебирать списки, чтобы вы могли делать для b, item в enumerate (espeto) и использовать b для индекса и item как espeto [b]. Кроме этого, определены ли janela и игроки? – Aquiles

ответ

0

Очень вероятно, что player.collided - это None, а не функция/метод. Пожалуйста, проверьте это. Это единственное, что я могу догадаться с данными.

+0

странное мнение ... если я поместил код в цикл с правой переменной, он работает – zTross

+0

Можете ли вы проверить, скажем, печать, значение player.collided, это None или функция? Также обратите внимание на пробелы между 'espeto' и' [b], также упоминаемые в комментариях. – DurgaDatta

+0

он говорит нет, но с печатью он работает, теперь я ничего не знаю, что происходит:/ – zTross

Смежные вопросы