2016-04-18 13 views
0

画面にマップを描画するのにpygameを使用しようとしていますが、なぜそれができないのか理解できません。私はトレースバックを取得していません。画面が初期化され、イメージが描画されていません。私は同じ結果を持つ他の.bmpイメージを試してきましたので、私のコードには、順序正しく書かれていないものがなければなりません。ここで画面に画像をblitできません

は、ゲームのメインモジュールである:ここでは

import pygame 
import sys 
from board import Board 

def run_game(): 

    #Launch the screen. 

    screen_size = (1200, 700) 
    screen = pygame.display.set_mode(screen_size) 
    pygame.display.set_caption('Horde') 


    #Draw the board. 
    game_board = Board(screen) 
    game_board.blit_board() 

    #Body of the game. 
    flag = True 
    while flag == True: 
     game_board.update_board() 

run_game() 

は、あなたが使用されて参照基板モジュールです。具体的には、関数は黙ってmap.bmpというファイルを描画することに失敗しています(ファイルは同じディレクトリにあります)。

私はすべて黒い画面が表示されます。 map.bmpイメージが描画されないのはなぜですか?

+0

あなたは[ 'pygame.display.flipを()']する必要はありませんが(のhttp:// WWW。 pygame.org/docs/ref/display.html#pygame.display.flip)または['pygame.display.update()'](http://www.pygame.org/docs/ref/display.html#pygame .display.update)blitの後に実際に画面を更新しますか? –

+0

そしてそれはすべて一つの声明になる。それはまさにそれでした!ありがとう。 –

答えて

1

DanMašekが述べたように、画像を描いた後に表示を更新するようにPyGameに指示する必要があります。これは、単に以下にあなたの 'ボード' ループを変更する達成するために

def update_board(self): 
    """Updates the map, however and whenever needed.""" 

    #Listens for the user to click the 'x' to exit. 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: sys.exit() 

    #Re-draws the map. 
    self.blit_board() 

    pygame.display.update() 
+1

それは私がする必要があった正確でした。 pygame.display.update()。それを忘れてしまった。ご協力いただきありがとうございます! –

関連する問題