2017-07-24 87 views
0

如果我將player1和player2向上移動,並假設我向player1按下向下鍵,則播放器停止向上移動。我找不到問題。有人能幫我解釋我做錯了什麼嗎?如果player2向另一個方向移動,player1停止移動

package game; 

import java.awt.event.KeyAdapter; 
import java.awt.event.KeyEvent; 

public class KeyInput extends KeyAdapter{ 

    private Handler handler; 
    private boolean [] keyPressed = new boolean [4]; 

    public KeyInput(Handler handler){ 
     this.handler = handler; 
    } 
    public void keyPressed(KeyEvent e){ 
     int key = e.getKeyCode(); 

     keyPressed[0]= false; 
     keyPressed[1]= false; 
     keyPressed[2]= false; 
     keyPressed[3]= false; 

     for(int i = 0; i <handler.object.size(); i++){ 
      GameObject tempobject= handler.object.get(i); 
      if (tempobject.getId()== ID.Player1){ 
       if (key == KeyEvent.VK_UP){tempobject.setSpeedy(-7); keyPressed[0] = true;} 
       if (key == KeyEvent.VK_DOWN){tempobject.setSpeedy(7); keyPressed[1] = true;} 
      } 
      if(tempobject.getId()== ID.player2) 
       if (key == KeyEvent.VK_W){tempobject.setSpeedy2(-7); keyPressed[2] = true;} 
       if (key == KeyEvent.VK_S){tempobject.setSpeedy2(7); keyPressed[3] = true;} 
     } 
     if(key == KeyEvent.VK_ESCAPE)System.exit(1); 
    } 
    public void keyReleased(KeyEvent e){ 
     int key = e.getKeyCode(); 
     for(int i = 0; i <handler.object.size(); i++){ 
      GameObject tempobject= handler.object.get(i); 
      if (tempobject.getId()== ID.Player1){ 
       if (key == KeyEvent.VK_UP) keyPressed[0] = false; 
       if (key == KeyEvent.VK_DOWN) keyPressed[1] = false; 

       if(!keyPressed[0] && !keyPressed[1])tempobject.setSpeedy(0); 

      } 
      if (tempobject.getId()== ID.player2){ 
       if (key == KeyEvent.VK_W) keyPressed[2] = false; 
       if (key == KeyEvent.VK_S) keyPressed[3] = false; 

       if(!keyPressed[2] && !keyPressed[3])tempobject.setSpeedy2(0); 
      } 
     } 
    } 
} 

回答

2

它可能與此有關:

keyPressed[0]= false; 
keyPressed[1]= false; 
keyPressed[2]= false; 
keyPressed[3]= false; 

這將使它所以,每當按下任意鍵,其它按鍵都設置爲false,即使仍可以被持有它們下。

+1

感謝DavidBittner那是我的問題:) – arjan210299

+0

非常歡迎您! – DavidBittner