2017-07-02 5 views
-2

私はWASDキーでキャラクター(四角形)を動かしたパイゲームで簡単なゲームを作りたかったのです。私はいくらか達成しましたが、動きは滑らかではなく、私がマウスを動かすと、キャラクターは移動を拒否します。私のPygameスクリプトは、マウスを動かすと画面上のキャラクターを一時停止させます。

私は入力がある一方で、それがループ内で立ち往生している知っているが、私は閉じることができないことなく、それを修正するかどうかはわかりません、私のループ

for event in pygame.event.get(): 
     if event.type is pygame.QUIT: 
      pygame.quit() 
      sys.exit() 

のために何かであると仮定しますプログラム。ここ

while launchGame: 
    for event in pygame.event.get(): 
     if event.type is pygame.QUIT: 
      pygame.quit() 
      sys.exit() 
    screen.fill(WHITE) 
    player.draw() 
    player.move() 
    pygame.display.flip() 

そして、それは場合に役立ちます私の動きスクリプトです:私はこの問題を解決するにはどうすればよい

def move(self): 
    if event.type == pygame.KEYDOWN: 
     if pygame.key.get_pressed()[K_w]: 
      self.y -= self.speed 
     if pygame.key.get_pressed()[K_s]: 
      self.y += self.speed 
     if pygame.key.get_pressed()[K_a]: 
      self.x -= self.speed 
     if pygame.key.get_pressed()[K_d]: 
      self.x += self.speed 

はここでゲームのメインループです。

答えて

0

シンプルなタイプミスです。二行目では、if event.type is pygame.QUIT:

を持っており、これは、仕事しようとしなかった場合if event.type == pygame.QUIT:

次のようになります。

while RUNNING: 
    for event in pygame.event.get(): 
     if event.type is pygame.QUIT: 
      RUNNING = False; 
    screen.fill(WHITE) 
    player.draw() 
    player.move() 
    pygame.display.flip() 

そして、それが持つ問題だかどうかを確認するために、コマンドラインからプログラムを実行しますpycharm

+0

それは違い、その同じ効果を作っていない。 – Michael

+0

エラーがありますか?どのIDEを使用していますか?これはどちらか動作しない場合は、多分あなたは 'RUNNING'ながら、代わりの ' pygame.quit() '' sys.exit()を使用して試すことができます ' は' RUNNING = false'を を行います。完全なコードまたはgithubレポを投稿してください。 –

+0

エラーはありません。私はpycharmを使用していますが、RUNNING = Falseを試しましたが、それでも動作しませんでした。 – Michael

0

問題が見つかりました。 event.type == pygame.KEYDOWNの場合は必要ありません:イベント機能ではないため、pygame.key.get_pressed()を使用しています。

ありがとう、ありがとう私は推測するxD

関連する問題