1
我是一名自學成才的程序員,所以我不知道正確的做事方式。我製作了諸如小行星和蛇之類的簡單遊戲,但在這些遊戲中,您可以輕鬆修改鍵事件功能中的變量。這裏是我在我的簡單的小行星遊戲做到了:我應該如何編程高級java遊戲中的鼠標/鍵輸入?
/*
* key listener events
*/
public void keyReleased(KeyEvent k){
int keyCode = k.getKeyCode();
switch(keyCode){
case KeyEvent.VK_LEFT:
turnLeft = false;
break;
case KeyEvent.VK_RIGHT:
turnRight = false;
break;
case KeyEvent.VK_UP:
accel = false;
break;
case KeyEvent.VK_1:
cls = true;
break;
case KeyEvent.VK_ENTER:
break;
case KeyEvent.VK_SPACE:
fire = false;
}
}
public void keyTyped(KeyEvent K){}
public void keyPressed(KeyEvent k){
int keyCode = k.getKeyCode();
switch(keyCode){
case KeyEvent.VK_LEFT:
turnLeft = true;
break;
case KeyEvent.VK_RIGHT:
turnRight = true;
break;
case KeyEvent.VK_UP:
accel = true;
break;
case KeyEvent.VK_1:
cls = false;
break;
case KeyEvent.VK_ENTER:
clearAllBullets();
break;
case KeyEvent.VK_SPACE:
fire = true;
}
}
如果我做了更先進的遊戲(與主菜單,選項,主遊戲等),我應該怎麼辦按鍵/鼠標輸入?另外,如果我要進入單人遊戲,我應該把所有的遊戲代碼放到一個類中嗎?有沒有辦法將單人遊戲的代碼放入一個單獨的類,並以某種方式讓鍵輸入仍然修改變量等?
謝謝你的時間!
P.S.任何鏈接或來源是非常讚賞。 :D
我會怎麼做菜單,主遊戲,等。用'正常'的方式? 我現在知道如何做的唯一方法是直接在'keyPressed()'和'keyReleased()'函數內部?我不能在兩個菜單上都發生同樣的情況。 這樣做的最好方法是什麼? – 2011-03-24 01:00:45
http://download.oracle.com/javase/tutorial/uiswing/events/keylistener.html – dantuch 2011-03-24 01:10:55
@Steven我會開始在'ViewGameScreen'( - UI之一)內部創建'Game game',然後在'game.run ()'我會創建'Player'(以及所有其他的東西),並在'move()'方法中使用關鍵聆聽器。接下來,我會添加**觀察者**(design-appter-usefull)到'player'或'game',讓te UI知道遊戲中的變化,讓UI展示這些變化。 – dantuch 2011-03-24 01:18:20