2017-01-04 37 views
1

私はプラットフォーマーを作ろうとしていますが、コードをどのようにしてコード化するかについて困惑していますが、上向きの矢印を押し続けると、移動を止めて抑制するまでy変更が1回だけ変化します。私はまだ重力になっていません。)私のコードはここにあります:Pygame:キーが離されるまで関数を一度だけ実行する方法はありますか?

import pygame 
import time 
import random 
pygame.init() 
display_width = 800 
display_height = 600 
black = (0,0,0) 
white = (255,255,255) 
red = (255,0,0) 
car_width = 64 
gameDisplay = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption('Platformer') 
clock = pygame.time.Clock() 
game_loop(): 
    score = 0 
    x = (display_width * 0.45) 
    y = (display_height * 0.8) 
    y_change = -5 
    x_change = 0 
    gameExit = False 
    while not gameExit: 
     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       pygame.quit() 
       quit() 
      if event.type == pygame.KEYDOWN: 
       if event.key == pygame.K_LEFT: 
        x_change = -5 
       elif event.key == pygame.K_RIGHT: 
        x_change = 5 
       elif event.key == pygame.K_UP: 
        y_change = 25 
      if event.type == pygame.KEYUP: 
       if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: 
        x_change = 0 
gameloop() 
pygame.quit() 
quit() 

誰かが助けることができますか?

+0

ここにはかなりのコードがありません。あなたが達成しようとしていることは私には分かりません。 –

+0

私はまだやっていません。私はちょうど上向きの矢印を保持しながらy_changeに25を追加し続けることを考えているだけです。 – PokeBros

+0

コードを読んでも、あなたは25を追加し続けません。あなたはkeydownのイベントに25を追加します。 25回以上追加したい場合は、各期間に25を追加する定期的なイベントが必要になります。次に、キー状態をマークする状態変数が必要です。キーがダウンしている間に25が追加されます。 –

答えて

0

この場合、whileループを使用できます。コードは:
while (key pressed): (run function) 私はPygameを使用したことがないかどうかは分かりませんが、少し修正する必要があります。

関連する問題