2016-06-01 16 views
1

私はここにゲームのための私のコードを持っています。私は、プログラムを実行させるためにmain関数のdisplayScore(score)呼び出しをコメントアウトしました。その呼び出しのコメントが解除されると、プログラムウィンドウは開かれた直後に閉じられます。Pythonのゲームにスコアクロックを追加する

function displayScoreの目的は、ゲームのスコアを左上隅に表示することです。相手の選手のスコアの右隅に表示する必要があります。

ここでは、displayScoreをメイン関数でコメントアウトしてゲームを実行できるようにするためのコードです。ゲームを実行するとすべてが動作します。

 ball = ballmovement(ball, ballDirX, ballDirY) 
     ballDirX, ballDirY = collisionwithedges(ball, ballDirX, ballDirY) 
     score = checkscore(paddle1, ball, score, ballDirX) 
     ballDirX = ballDirX * collisionwithpaddles(ball, paddle1, paddle2, ballDirX) 

     pygame.display.update() #updates the display to clear surface per the frame rate 
     FRAMECLOCK.tick(FRAMERATE) #Sets the Frames of program to defined rate 

if __name__=='__main__': 
    main() 
+0

たコンソール出力を読み取ることによって、解決策を見つけ、それが閉じたときには、エラーメッセージを表示していますか?この方法では、それを別の方法で閉じることはできません。そのエラーを投稿に含める必要があります。また、[mcve]を読むには時間がかかるでしょう。 –

+0

私のIDEは、奇妙なエラーメッセージも出さなかった。それは、シェルを再び開くと言いました。 – Stavan

答えて

2

だけではライン

displayScore(score) 

を置き換えます:あなたは、引数に番号の代わりの文字列を使用しようとしている

displayScore(str(score)) 

問題がどこにあるか、それは見てのコメントを解除レンダリング;)スコアはintであり、BASICFONT.render((score), True, WHITE) はスコアが文字列またはバイトの配列であることを要求します:)

私は良い兆候^^

Traceback (most recent call last): 
    File "test.py", line 130, in <module> 
    main() 
    File "test.py", line 118, in main 
    displayScore(score) 
    File "test.py", line 71, in displayScore 
    resultSurf = BASICFONT.render((score), True, WHITE) 
TypeError: text must be a unicode or bytes 
+0

strでdisplayScoreに追加しましたが、ウィンドウが開かないようになりました。 – Stavan

+0

うーん..奇妙な;私のコンピュータでは、それは動作します。あなたはPythonバージョン2または3を使用していますか? –

+0

私はPython 3を使用しています – Stavan

関連する問題