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;
}
}