2016-06-26 27 views
0

現在、私はPygameでゲームを作成するための学校の課題を行っています。私はそれを決定する時計を作成するプロセスに立ち往生しています。日、時間、および分。pygame(tkinterなし)のステータスバー内でデジタル時計を作る方法は?

これまでのところ私はいくつかのコードを作成しましたが、Pygameはこれまで実行したときにクラッシュします。これはおそらく少しノービーだと私は知っているが、私は本当にいくつかの助けに感謝します。

これは私のコードです:

import sys, pygame, random, time 
pygame.init() 

size = width, height = 1280, 720 
screen = pygame.display.set_mode(size) 

done = False 

Black=0,0,0 
White=255,255,255 

Time = 0 
Minute = 0 
Hour = 0 
Day = 0 

#Fonts 
Font = pygame.font.SysFont("Trebuchet MS", 25) 

#Day 
DayFont = Font.render("Day:"+str(Day),1, Black) 
DayFontR=DayFont.get_rect() 
DayFontR.center=(985,20) 
#Hour 
HourFont = Font.render("Hour:"+str(Hour),1, Black) 
HourFontR=HourFont.get_rect() 
HourFontR.center=(1085,20) 
#Minute 
MinuteFont = Font.render("Minute:"+str(Minute),1, Black) 
MinuteFontR=MinuteFont.get_rect() 
MinuteFontR.center=(1200,20) 

Clock = pygame.time.Clock() 

while not done: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 

    screen.fill(White) 

    #Timer 
    while Time==0: 
     time.sleep(1) 
     Minute=Minute+1 
     screen.blit(MinuteFont, MinuteFontR) 
     if Minute == 60: 
      Hour=Hour+1   
      screen.blit(HourFont, HourFontR) 
     if Hour==12: 
      Hour=0 
      Day=Day+1 
      screen.blit(DayFont, DayFontR) 

    pygame.display.flip() 

    Clock.tick(60) 

pygame.quit() 
+0

クラッシュを引き起こす行はありますか?例外は何ですか? –

+0

申し訳ありません。アイドル状態で実行を押すと、プログラムは正常に起動し、応答を停止してクラッシュします。画面は通常黒のままですが、時には適切な色の白を表示します。私はそれが助けてくれることを願っています:/ @ニ。 – Joshua

答えて

0

あなたの問題は、次のとおりです。

while Time==0: # <--- here 
    time.sleep(1) 
    # ...  

あなたは0Timeを初期化していますが、それは価値だ変わりません。それは無限ループを引き起こします。

+0

ありがとうございます。私は 'while'文を 'if'文に変更し、ループが発生するようにすることでクラッシュを止めることができました:Time <60。 また、分== 60、分= 0のときもそうしました。 コードを表示するためにディスプレイが必要です。この謎の次の部分は本当に笑 – Joshua

関連する問題