私はタンクゲームを作成しようとしていますが、まだJavaでグラフィックスプログラミングを行う方法を学んでいます。最初は、KeyListenersを使って2つの画像(どちらがどちらのプレーヤーが使用されているかに依存します)のいずれかを動かそうとしました。 Key Bindingsがこれについてもっと効果的な方法かもしれないと言われました。キーバインディングを使用して画像を移動する
public class FrameMain extends JFrame{
...
public FrameMain(){
this.addBindings();
addBindings()メソッド::ここに私のコードのいくつかはある
protected void addBindings() {
InputMap inputMap = pnlPlay.getInputMap();
KeyStroke key = KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, Event.KEY_PRESS);
inputMap.put(key, pnlPlay.pnlGame.MoveTank(2, pnlPlay.nPlayer));
key = KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, Event.KEY_PRESS);
inputMap.put(key, pnlPlay.pnlGame.MoveTank(-2, pnlPlay.nPlayer));
}
MoveTank方法:
public int MoveTank(int xChange, int nPlayer){
System.out.println("move "+nPlayer);
if(nPlayer==0){
tank1.x+=xChange;
}else tank2.x+=xChange;
repaint();
return 1;
}
私がいる問題は、私は押したときに、ということです右または左の矢印キーのいずれか、私はどんな種類の応答も得ていない。それは "移動#"を印刷する必要がありますが、そうではありません。誰かが私が間違ったやり方を知っていたり、同じことをするコードの指示で私を指摘することができたら、私はそれを感謝します。私はコードを作業順に見てからそれを使って遊ぶのがベストです。このコードで
方法は小文字で始めるべきコード例が含まれています。 – BVSmallman
ここに掲載されている私の例をチェックすることができます:[Swing Timer and Key Bindings](http://stackoverflow.com/a/6887354/522444)。 –
ありがとう!そのコードはまさに私が探していたものでした。 – user1366342