2016-06-01 2 views
1

У меня есть код для игры здесь. Я прокомментировал вызов displayScore (оценка) в основной функции, чтобы позволить программе работать. Когда этот вызов раскомментирован, окно программы закрывается сразу после открытия.Добавление очков в игру в Python

Цель функции 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) 

By:

displayScore(str(score)) 

Вы пытаетесь использовать номер вместо строки в аргументе of render;) Оценка - это 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 для отображенияScore, теперь окно даже не открывается. – Stavan

+0

Хм .. странно; на моем компьютере это работает. Используете ли вы python версии 2 или 3? –

+0

Я использую python 3 – Stavan