我聲明在java中編寫我的第一個遊戲,我需要一些幫助讓KeyListener適合我的遊戲。在教程一些搜索後我已經imlemented這樣的:需要幫助在Java中實現用於2D遊戲的KeyListener
frame.addKeyListener(new KeyAdapter(){
private boolean[] keys = new boolean[120];
public boolean up , down , left , right;
public void tick() {
up = keys[KeyEvent.VK_UP] || keys[KeyEvent.VK_W];
down = keys[KeyEvent.VK_DOWN] || keys[KeyEvent.VK_S];
left = keys[KeyEvent.VK_LEFT] || keys[KeyEvent.VK_A];
right = keys[KeyEvent.VK_RIGHT] || keys[KeyEvent.VK_D];
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() != KeyEvent.VK_F5) keys[e.getKeyCode()] = true;
tick();
if (up){
yMap+=4;
direction='n';
xInd=0;
}
else if(down){
yMap-=4;
direction='s';
xInd=2;
}
else if(right){
xMap-=4;
direction='e';
xInd=1;
}
else if(left){
xMap+=4;
direction='w';
xInd=3;
}
wait++;
if(wait==5){
yInd++;
wait=0;
}
if(yInd==3)
yInd=0;
cha=sprites[xInd][yInd];
panel.repaint();
}
public void keyReleased(KeyEvent e) {
keys[e.getKeyCode()] = false;
tick();
yInd=0;
cha=sprites[xInd][yInd];
panel.repaint();
}
public void keyTyped(KeyEvent e) {
}
});
但是每一件事情就是在這段代碼罰款,字符正確地移動精靈是完美的,但它缺少的只有一件事,我唯一需要的是當我向一個方向移動角色時,讓我們說例如UP,只需點擊向上按鈕(這通常應該使它只有4個像素點向上移動),角色應該完成自動走向下一個方形(每個方格是32 * 32像素)。
這裏的爲例,可以說我有什麼一些事情是這樣地圖:
http://i.stack.imgur.com/I6hwj.jpg
紅色的色格拉是我想招的角色,我需要的是當我按下上升按鈕紅色色格拉應自動轉到下一廣場這樣的:
http://i.stack.imgur.com/1XPPX.jpg
,它不應該停留在中間!
我希望我解釋得很好,我的問題和對英語不好的抱歉!
你有點說的代碼應該做的,但到底是什麼它目前辦?而且,如果你在這個主題上搜索,你肯定發現你根本不應該使用KeyListeners,而是使用Key Bindings。 –
如何使用密鑰綁定? – anony50600
谷歌教程。這是非常有用的,是教我如何使用這些。 –