2017-06-12 17 views
-1
 for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 
     if event.type == pygame.MOUSEBUTTONDOWN: 
      keys_pressed_p2 += 1 
    keys = pygame.key.get_pressed() 
    if keys[pygame.K_w] and (General_knowledge[general_knowlege_questions[0] - 1][5] == "a"): 
     key_right = 1 
    if keys[pygame.K_d] and (General_knowledge[general_knowlege_questions[0] - 1][5] == "b"): 
     key_right = 1 
    if keys[pygame.K_s] and (General_knowledge[general_knowlege_questions[0] - 1][5] == "c"): 
     key_right = 1 
    if keys[pygame.K_a] and (General_knowledge[general_knowlege_questions[0] - 1][5] == "d"): 
     key_right = 1 
    if keys[pygame.K_SPACE]: 
     keys_pressed += 1 
    if keys[pygame.K_UP] and (General_knowledge[general_knowlege_questions[0] - 1][5] == "a"): 
     arrow_key_right = 1 
    if keys[pygame.K_RIGHT] and (General_knowledge[general_knowlege_questions[0] - 1][5] == "b"): 
     arrow_key_right = 1 
    if keys[pygame.K_DOWN] and (General_knowledge[general_knowlege_questions[0] - 1][5] == "c"): 
     arrow_key_right = 1 
    if keys[pygame.K_LEFT] and (General_knowledge[general_knowlege_questions[0]- 1][5] == "d"): 
     arrow_key_right = 1 


    if (key_right == 1) and (rect_width > 0) and (keys_pressed == 1): 
     key_right = 0 
     keys_pressed = 0 
     player_1_score = rect_width/30 
     player_1_score = round(player_1_score, 0) 
     print(player_1_score) 

    if (arrow_key_right == 1) and (rect_width > 0) and (keys_pressed_p2 == 1): 
     arrow_key_right = 0 
     keys_pressed_p2 = 0 
     player_2_score = rect_width/30 
     player_2_score = round(player_2_score, 0) 
     print(player_2_score) 

私のコードは、スペースバーと共にw、a、s、dキーが押されたときに機能しますが、最後の黒い部分が機能しません。後者がスペースバーの代わりにマウスクリックを使用していることを除いて、両方が同じであるため、これはわかりません。助けてもらえますか?if文が機能しないのはなぜですか? Python/pygame

+0

'key_right'と' arrow_key_right'の違いは何ですか?これも少し不明です。私は何が起きているのか、問題を正確に伝えているのかは分かりません。あなたはより明確な[mcve]を提供しようとすることができますか? – idjaw

+0

key_rightとarrow_key_rightは、プレーヤー1とプレーヤー2を区別するための変数です。プレイヤー1は、コントロールとしてw、a、sdを持っています。それらが正しいオプションを押した場合、key_rightは1になり、次のifブロックが有効になります。同じことがarrow_key_rightとプレーヤー2にも当てはまります。また、keys_pressedは、スペースバーを押すか一度クリックするだけで、複数ではなくクイズからの回答が1つだけ選択されるようにする変数です。物事をクリアする希望! – Noobcoder

答えて

0

私はライン5を想定して、問題を作る:

keys_pressed_p2 += 1 

オペレータが=の代わり+=である必要がありそうです。 0以外の値がTrueと見なされているので言及if文は...and keys_pressed_p2:代わりの...and (keys_pressed_p2 == 1):た場合

あなたのコードも動作します。

幸運を祈る!

関連する問題