2017-08-15 8 views
0

私は、オンラインコースからPythonとPygameを使用してゲームを作ろうとしている初心者です。しかし、次のコードを実行すると、pygameウィンドウが分割されて開き、閉じます。Pythonプログラムを実行すると、pygameウィンドウが1秒間に開き、終了します。

import pygame 

pygame.init() 
screen = pygame.display.set_mode((900,700)) 

finished = False 

while finished == False: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      finished = True 

    rectOne = pygame.Rect(0,0,30,30) 

    color = (0,0,255) #R,G,B 
    pygame.draw.rect(screen,color,rectOne) 
    pygame.display.flip() 

エラーメッセージも表示されません。それは私のループを一度実行した後、finishedTrueに変更するようなものです。私は多くの時間をチェックし、私のコードはオンラインコースのコードと正確に一致します。私はMacとPython 2.7.13を使用しています。誰も助けることができますか? 更新:これが役立つかどうかはわかりませんが、私はまだ以下のコードを実行することができます。代わりにpygame.display.flip()

pygame.display.update()を使用してください)

A: インポートpygameの

pygame.init() 
screen = pygame.display.set_mode((900,700)) 

finished = False 

while finished == False: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      finished = True 
+2

どのようにコードを実行していますか?何らかのエラーが発生した場合は、端末から実行する必要があります。 –

+1

私はあなたのコードを実行すると、左上に青い四角でウィンドウが開いたままになります。もう一度終了しません – jacoblaw

+0

実行タブをクリックして「実行モジュール」をクリックして実行します。それは私のコンピュータかもしれない。 – MakeDaGames

答えて

0

OK、私はあなたの問題について少し検索しましたし、私はあなたが次のことをしようとする必要があるという結論に達しましたB)あなたのプログラムの最後に、メインループの外に、pygame.QUITと次の行に入れてみてください。quit()

C)私の上記のスペキュラこの後

while not finished: 
    for event in pygame.event.get(): 
     print(event) 

あなたがプログラムを実行すると、シェルでそれが表示されます:、あなたはQUITイベントは、自動的にトリガ次のようにあなたのwhileループを変更することにより、これを行うなっているかどうかを確認するためション作業を必要とします問題が発生した場合、最初のイベントと最後のイベントはQUITになるでしょうし、最近私はredditでそれを読んでいるので、おそらくMacやバージョンの問題です。here

+0

助けてくれてありがとう、これらのどれもうまくいかなかった。私がイベントを印刷したとき、私は次のようになりました:<イベント(4-mouseMotion {'buttons':(0、0、0)、 'pos':(475、​​286)、 'rel':(475、​​286)}) <イベント(4-MouseMotion {'buttons' :(0、0、0)、 'pos':(466,290)、 'rel':(-9,4)})> <イベント(4-MouseMotion {'buttons' :(0、0、0)、 'pos':(455,296)、 'rel':(-11,6)})>私はMacで問題になるはずですそれが真実ならば、私がすぐに投稿する質問にあなたが答えることができるかどうか疑問に思っています。 – MakeDaGames

関連する問題