私はトップダウンゲームを作ろうとしており、プレイヤーの動きに問題があります。キー[W、A、S、D]を押すと、そのように移動します。しかし、私はそれがボタンが押されている限り、移動し続けたい。だから、私は限りplayerMovesの1が動いておくべき1人のプレーヤーあるようplayerMoveLeft、playerMoveRight、playerMoveDownまたはplayerMoveUp]python/pygameテストする特定のキー
if allowMovement == 1:
if event.key == pygame.K_a:
playerMoveLeft = 1
print("Hello")
if event.key == pygame.K_d:
playerMoveRight = 1
if event.key == pygame.K_s:
playerMoveDown = 1
if event.key == pygame.K_w:
playerMoveUp = 1
if event.key == pygame.K_LSHIFT:
playerMoveSprint = 1
playerSpeed = 2
1に変更します。 問題を知っている: 私がキーを解放すると、すべてのplayerMovesが0に設定されます。プレイヤーが停止する原因は何ですか?私はtestfor 1の特定のキーを持ち上げて、その特定のplayerMoveをこのテキストの下に0
if event.type == pygame.KEYUP:
playerMoveLeft = 0
playerMoveRight = 0
playerMoveUp = 0
playerMoveDown = 0
playerMoveSprint = 0
ができます一人一人のために
for event in pygame.event.get():
if event.type == pygame.QUIT:
valmis = True
if event.type == pygame.KEYDOWN:
############################## CONTROL PLAYER ############################
if allowMovement == 1:
if event.key == pygame.K_a:
playerMoveLeft = 1
print("Hello")
if event.key == pygame.K_d:
playerMoveRight = 1
if event.key == pygame.K_s:
playerMoveDown = 1
if event.key == pygame.K_w:
playerMoveUp = 1
if event.key == pygame.K_LSHIFT:
playerMoveSprint = 1
playerSpeed = 2
if event.type == pygame.KEYUP:
playerMoveLeft = 0
playerMoveRight = 0
playerMoveUp = 0
playerMoveDown = 0
playerMoveSprint = 0
if playerMoveSprint == 1:
playerSpeed = 1
if playerMoveLeft == 1:
player_x -=(playerSpeed)
if playerMoveRight == 1:
player_x +=(playerSpeed)
if playerMoveUp == 1:
player_y -=(playerSpeed)
if playerMoveDown == 1:
player_y +=(playerSpeed)
おかげでプレイヤーの動きのための完全なコード領域があります!
私はこの問題を理解していません。コードは、いずれかのキーが解放されたかどうかをチェックし、すべての移動を停止します。対応するキーの移動だけを止めたい場合は、 'if event.type == pygame.KEYUP'で' event.key'をチェックして 'if event.type == pygame.KEYDOWN '。 – Isa
特定のキーが押されていない場合は、Wを前進させるためにWと言うことができます。私はplayerMovementUpだけを0にすることもできます。 – cmdtvt
@cmdtvtだから、プレイヤーは東、あなたが与えた例では西洋と南洋がありますか?そうなら、それは不可能です。 –