2016-10-30 2 views
0

Я должен написать программу для стрельбы из лука скоринг и я получаю эту ошибку: AttributeError: «INT» объект не имеет атрибута «SetText»AttributeError: «INT» объект не имеет атрибута «SetText»

def main(): 
    win = gameWindow() 
    currentShot, overallScore = scoreOverlay(win) 

    shot = 0 
    totalScore = 0 
    for i in range(5): 
     p = win.getMouse() 
     p.draw(win) 
     x = p.getX 
     y = p.getY 
     score = scoring(p) 

    currentShot.setText('Current Shot: {0:1}'.format(scoring)) 
    overallScore = 'overallScore' + 'currentShot' 
    overallScore.setText('Total{0:1}'.format(overallScore)) 

    main() 

Любые идеи, как это исправить? Я из глубины души. Благодарим вас за любую помощь, которую вы можете предоставить.

+0

'currentShot' и' totalScore' являются целыми числами ... – Li357

+0

Можете ли вы правильно отложить код, пожалуйста? –

+0

@AndrewLi Как бы это изменить? –

ответ

0

Здесь; currentShot = 0 и здесь; overallScore = 0 вы устанавливаете currentShot и totalScore как целые числа. Они больше не равны Text(Point(175,13), 'Current Shot: ') и Text(Point(175,340), 'Total: ') соответственно. Используйте разные имена переменных для переменных в currentShot = 0 и overallScore = 0, и это должно исправить вашу ошибку.

+0

Это сработало спасибо, после этого я столкнулся с другой проблемой и исправил ее, а теперь столкнулся с другим. Теперь я получаю TypeError: непустая строка формата, переданная объекту .__ format__ –

+0

Если я правильно следую вашему коду, вам нужно изменить 'currentShot.setText ('Current Shot: {0: 1}'. Format (scoring)) 'to' currentShot.setText ('Current Shot: {0: 1}'. format (shot)) 'или' currentShot.setText ('Current Shot: {0: 1}'. format (score)) '. (Я не уверен, является ли это переменной выстрела или оценки, которую вы хотите использовать здесь, но любой из них также должен быть преобразован в строку, например 'score = str (scoring (p))'). Это потому, что здесь вы пытаются форматировать функцию, scoring(), а скорее должны форматировать строку. – Eric

+0

Кроме того, 'totalScore = 'totalScore' + 'currentShot'' должен быть обновлен, чтобы отражать ваши новые имена переменных,' totalScore = shot + totalScore' – Eric

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