2016-11-15 15 views
0

ゲームを実行すると、ゲームが実行されていた秒数が私のpygameウィンドウに表示されるタイマーを作成しようとしています。しかし何らかの理由で、動作していないようです。私はその問題が何であるかを確信していません。タイマー機能がどこにあるライン35-44がある(Pygame).blitは表示されません。

... 時間を表示することが予想される場所ライン71がある...


import pygame 

pygame.init() 
pygame.font.init() 

FPS = 60 
fpsClock = pygame.time.Clock() 

time = 10 

WHITE = (255,255,255) 

dimension = [936, 520] 

SCREEN = pygame.display.set_mode(dimension) 

font = pygame.font.Font("8-BIT WONDER.TTF",16) 

gameEnd= False 

#Images 
blacksmith = pygame.image.load("blacksmith.png") 
blacksmith = pygame.transform.scale(blacksmith,(144,144)) 

background = pygame.image.load("background_img.png") 

#Positions 
blacksmith_position = [400,275] 

anvil_position = [0,0] 

song = pygame.mixer.music.load("Pixelland.mp3") 
pygame.mixer.music.play(0, 0.0) 

#Time 
get_time = True 

#Clock 
while get_time == True: 
    time = pygame.time.get_ticks()/1000 
    pygame.time.delay(1000) 

display_time = font.render(time, True, WHITE) 

#Game Loop 

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



    #Player Controls 

    keys = pygame.key.get_pressed() 

    if keys[pygame.K_F11]: 
     pygame.display.toggle_fullscreen() 

    if keys[pygame.K_LEFT]: 
     blacksmith_position[0] = max(95, blacksmith_position[0] - 12) 

    if keys[pygame.K_RIGHT]: 
     blacksmith_position[0] = min(685, blacksmith_position[0] + 12) 



    SCREEN.blit(background, (0, 0)) 
    SCREEN.blit(blacksmith,(blacksmith_position)) 
    SCREEN.blit(display_time, (70,10)) 
    pygame.display.update() 
    fpsClock.tick(FPS) 

pygame.quit() 
quit() 
+1

しばらくGET_TIME ==真のあなたは 'を実行します。'すべてを停止します。あなたはいつでも実行できる 'while'ループを1つしか持てません(無限に) – furas

答えて

1

あなたはすべてを停止しwhile get_time == True:を実行します。それは常に実行されます。

常に実行するループは1つだけwhileです(エンドレスループ) - mainloop

(ビットマップフォントファイルなし)の作業例

import pygame 

# --- constants --- 

FPS = 60 

WHITE = (255, 255, 255) 
BLACK = ( 0, 0, 0) 

DIMENSION = (936, 520) 

# --- classes --- 
# empty 

# --- functions --- 
# empty 

# --- main --- 

# - init -  

pygame.init() 
#pygame.font.init() # pygame.init() should run `pygame.font.init()` automatically 
screen = pygame.display.set_mode(DIMENSION) 

# - resources - 

font = pygame.font.Font(None, 16) 

# - mainloop - 

fps_clock = pygame.time.Clock() 
game_end = False 

while not game_end: 

    # - events - 

    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      game_end = True 
     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_F11 
       pygame.display.toggle_fullscreen() 

    #keys = pygame.key.get_pressed() 

    #if keys[pygame.K_F11]: 
    # pygame.display.toggle_fullscreen() 

    # - updates (without draws) - 

    # render current time 
    cur_time = pygame.time.get_ticks()/1000 
    display_time = font.render(str(cur_time), True, WHITE) 

    # - draws (without updates) - 

    screen.fill(BLACK) 
    screen.blit(display_time, (70,10)) 
    pygame.display.update() 

    # - FPS - 

    fps_clock.tick(FPS) 

# - end - 

pygame.quit() 
#quit() # doesn't need it 
関連する問題