2011-12-04 10 views
1

オーケー画面を作りたいです。Pygame Overlays

キー入力がPある時はいつでもそれでは、画面が一時停止し、画面は を言ってポップアップ表示:そのような 何か「を、継続して終了するか、 『C』を押し 『Q』を」。

どのように教えていただけますか?

答えて

1

これを行う最も簡単な方法は、サブモジュールを使用して、blit()の新しいループを作成し、この一時停止メニューのイベント処理を行うことです。

(これが唯一の方法であり、これは私が私のプロジェクトをどのように働くかである。)

更新:13/12/11

次のコードの抜粋は、「親」のモジュールからです。これは単なるコードのループ部分です。あなたが探しているのは、button.doAction(screen)という行です。基本的にはPyGameに、適切なサブモジュールを実行するように指示します(重要ではなく、単に「子」関数を呼び出す必要があります)。

while mainRunning: 

    # --- Event Catching & Handling --- 
    for event in pygame.event.get(): 
     # Quit PyGame safely upon exit 
     if event.type == pygame.QUIT: 
      mainRunning = False 

     # Make the buttons do actions 
     if event.type == pygame.MOUSEBUTTONUP: 
      mousePos = pygame.mouse.get_pos() 
      for button in menuList: 
       X = button.getXPos() 
       Y = button.getYPos() 
       if X[0] < mousePos[0] < X[1] and Y[0] < mousePos[1] < Y [1]: 
        button.doAction(screen) 

    pygame.display.flip() 

pygame.quit() 

だから、我々は我々が望んでいた機能がplayGame.levelChoose()があったと言えば - 、これは[サブモジュール]であることを覚えている[機能] - その後、「子」のループは次のようになります。

def levelChoose(screen, playerData, playerName): 
    levelChooseRunning = True 

    while levelChooseRunning: 
     # --- Event Catching & Handling --- 
     for event in pygame.event.get(): 
      # Quit PyGame safely upon exit 
      if event.type == pygame.QUIT: 
       levelMenuRunning = False 

    pygame.display.flip() 

(もちろん、多くのコードはこれらの例から除外されています;完全なファイルを選ぶ場合は、over here on GitHubです。

これ以上の疑問がある場合は、私に教えてください。 ..

+0

あなたは私に素早いコード例を教えていただけますか? – bluesplay106

+0

申し訳ありません、それはとても長いです、@ bluesplay106 - 対応するように更新されました。 – nchpmn