2016-06-01 2 views
1

여기 게임에 대한 코드가 있습니다. 프로그램을 실행할 수 있도록 main 함수에서 displayScore (score) 호출을 주석 처리했습니다. 해당 호출의 주석 처리가 해제되면 프로그램 창이 열리고 즉시 닫힙니다.파이썬에서 게임에 점수 시계 추가하기

displayScore 함수의 목적은 왼쪽 상단 구석에 게임 점수를 표시하는 것입니다. 상대 선수의 득점을 위해 오른쪽 구석에 표시해야하는 항목입니다.

다음은 게임을 실행할 수있는 displayScore가 주 기능에서 주석 처리 된 게임 코드이며 모든 것이 작동합니다.

displayScore(str(score)) 

당신은 인수에 문자열 대신 번호를 사용하려고 :

 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) 

으로 교체 : 어디에 문제가 볼을 주석 해제 점수는 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

displayScore에 str을 추가했는데 이제는 창이 열리지도 않습니다. – Stavan

+0

흠 .. 이상 하네. 내 컴퓨터에서 작동합니다. 파이썬 버전 2 또는 3을 사용하고 있습니까? –

+0

파이썬 3을 사용하고 있습니다 – Stavan

관련 문제