私が現在作成しているゲームでは、3 つの異なるmousePressed
方法があります。1 つは単射、1 つは自動射撃、もう 1 つは近接攻撃です。自動発射用はスイングを使用するため、他の方法でそれらを使用しTimer
てオーバーライドできます。mousePressed
timer.stop();
しかし、単一の火はメソッドを直接mousePressed
呼び出すので、他の. 以下のコードは、発射の方法を示しています (箇条書きは)。fire()
mousePressed
ArrayList
public void fire(){
if(!power.getChainsaw()){
bullet.add(new Bullet(x, y));
}
}
そのため、プレイヤーが近接武器を手に入れたら、MouseListener
1 回の発砲のために を削除する必要があります。以下のコードを試しましたが、うまくいきませんでした。
removeMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
player.mousePressed2(e);
}
)};
MouseListener
これとまったく同じ方法で単発と近接を追加します。これは、実際のmousePressed
方法がどのように見えるかです。public void mousePressed2(MouseEvent e){
if(SwingUtilities.isLeftMouseButton(e)){
timer.stop();
fire();
}
}
public void mousePressed3(MouseEvent e){
if(SwingUtilities.isLeftMouseButton(e)){
timer.stop();
}
}
mousePressed2
は単発方式で、mousePressed3
は近接方式です