Tanks ゲームを作成しようとしていますが、Java でグラフィックス プログラミングを行う方法をまだ学んでいます。私は最初、KeyListeners を使用して 2 つの画像 (どのプレイヤーが移動するかによって異なります) のうちの 1 つを移動しようとしました。これについては、キーバインディングがより効果的な方法かもしれないと言われました。これが私のコードの一部です:
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;
}
私が抱えている問題は、右または左の矢印キーを押しても、何の反応も得られないことです。「move #」と表示されるはずですが、そうではありません。誰かが私が間違ったことを知っているか、同じことをするコードの方向性を教えてくれるなら、私はそれを感謝します. 私は、コードが正常に動作するのを見て、それをいじってみるのが一番勉強になります。