2016-10-30 5 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() 

任意のアイデアをどのようにこれを修正するには?私はこの1つの上で私の深さからです。 ご提供いただけるお手伝いをさせていただきまして、ありがとうございます。

+0

'currentShot'と' overallScore'は整数です... – Li357

+0

コードを正しくインデントできますか? –

+0

@AndrewLiどうすれば変更できますか? –

答えて

0

ここで、 currentShot = 0とここにあります。 overallScore = 0 currentShotとoverallScoreを整数として設定しています。それらはそれぞれ、Text(Point(175,13), 'Current Shot: ')およびText(Point(175,340), 'Total: ')に等しくなりません。 currentShot = 0overallScore = 0の変数に異なる変数名を使用すると、エラーが修正されるはずです

+0

それはあなたに感謝し、私はそれ以降の別の問題に遭遇し、それを修正し、別の問題に遭遇しました。現在、TypeError:オブジェクトに渡される空でない書式文字列.__ format__ –

+0

あなたのコードに正しく従っている場合、 'currentShot.setText( 'Current Shot:{0:1}'。format(scoreing))を変更する必要があります。 'currentShot.setText( 'Current Shot:{0:1}'。format(shot))'または 'currentShot.setText( '現在のショット:{0:1}'。 (私はそれがあなたがここで使用したいショット変数かスコア変数かどうかは分かりませんが、どちらか一方も 'score = str(scoring(p))'のように文字列に変換する必要があります)関数scoring()を書式化しようとしていますが、文字列を書式設定する必要があります。 – Eric

+0

また、overallScore = 'overallScore' + 'currentShot''は、あなたの新しい変数名を反映するように更新する必要があります.'overallScore = shot + totalScore' – Eric

関連する問題