0

2D ゲームで弾丸発射システムをセットアップしました。キャラクターが左に移動すると、弾丸が発射され、左にうまく移動します。これは右側でも機能します。しかし、ここに問題があります... 左に撃ったとしますが、画面を出る前にキャラクターが右に移動すると、この方向の変更により、すでに移動している弾丸の方向も変更され、キャラクターのように右に移動します。左右キーで弾丸を前後に動かせます。

ここに弾丸クラスがあります。move() メソッドは弾丸を移動します。

package gameLibrary;

import java.awt.*;
import java.util.ArrayList;

import javax.swing.ImageIcon;

public class Bullet {

int x,y, x2;
Image img;
boolean visible;

public Bullet(int startX, int startY) {
    x = startX;
    x2 = startX;
    y = startY;

ImageIcon newBullet = new             
ImageIcon(getClass().getResource("/resources/bullet.png"));
img = newBullet.getImage();
    visible = true;

}
public void move(){

    if(Character.left){
        x -= 4;
        if(x < 0){
            visible = false;
            Character.left = false;
        }
    }
    if(Character.right) {
        x = x + 4;
        if(x > 854){
        visible = false; 
        Character.right = false;
    }
    }



}
public int getX(){
    return x;
}
public int getY() {
    return y;
}
public boolean getVisible(){
    return visible;
}
public Image getImage(){
    return img;
}
 }
4

1 に答える 1