1
在我的代碼中,我想跟蹤使用數組按下按鈕的順序(順序是數組名稱),然後每次按下按鈕時該按鈕將被記錄在裏面陣列。這將通過對某些按鈕進行布爾值操作來完成,如果按下按鈕,則布爾值爲true;如果布爾值爲true,則從那裏開始,它會將order array中的下一個開放點設置爲該鍵。下面是它迄今所做的:使用for循環在Java中設置數組
private boolean bird = false;
private boolean ox = false;
private boolean dog = false;
String[] order = new String[10];
public void keyPressed(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.Player){
if(key == KeyEvent.VK_T) bird = true;
if(key == KeyEvent.VK_U) ox = true;
if(key == KeyEvent.VK_G) dog = true;
}
}
public void order(){
if(bird){
for(int x=0; x < 10; x++){
if(order[x] == null) order[x] = "bird";
bird = false;
}
}
if(ox){
for(int x=0; x < 10; x++){
if(order[x] == null) order[x] = "ox";
ox = false;
}
}
if(dog){
for(int x=0; x < 10; x++){
if(order[x] == null) order[x] = "dog";
dog = false;
}
}
}
請注意,這些動物在這裏代表的按鍵
這裏的問題是,當我檢查,看看有什麼陣列的每個指標設置爲它只給我一個鍵。 例子;我按t,所有的訂單(0,1,2)都是鳥。我知道這是因爲代碼遍歷所有的命令,看看它們是否在開始時是空的,然後它將這些空命令設置爲該單詞。之後,沒有任何訂單是空的。
我在問什麼是如何讓for循環停止後,它設置索引的一個單詞?我嘗試了'休息',但沒有奏效,我也在網上無望地看了一眼。感謝您的幫助!
使用break的問題;它只是讓第一個訂單被設置,使用一個關鍵碼後沒有什麼區別。編輯:沒關係,所以我玩弄了它,並把破碎的鳥和牛,但不是狗,當我這樣做,如果我按鳥第一個是鳥,如果我按牛沒有發生,當我按狗第二和第三訂單成爲狗。我不知道爲什麼會發生這種情況,但認爲id分享。 – GMagician
如果你現在更改@GMagician的值,現在我不能說出你做了什麼,但是這種行爲聽起來很奇怪,那麼'break;'語句應該放在括號內。 –
'代碼' 如果(鳥){ \t \t \t對(INT X = 0; X <10; X ++){ \t \t \t \t如果(順序[X] == NULL)順序[X] = 「鳥」 ; \t \t \t \t break; \t \t \t} \t \t \t bird = false; \t \t}'code'我在if語句後面放置了{},並且我認爲這也是奇怪的行爲。編輯:謝謝你的方式工作! – GMagician