我在2D游戏中设置了一个子弹射击系统。当角色向左移动时,子弹被发射并向左移动。这也适用于右侧。但这是问题所在...说我向左射击但在它离开屏幕之前角色向右移动,这个方向的改变也改变了已经移动的子弹的方向,它像角色一样向右移动。我可以使用左右键使子弹来回移动。
继承了子弹课程。子弹移动()方法移动子弹。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;
}
}
答案 0 :(得分:0)
子弹需要知道它的初始方向,所以在构造函数中传递一个布尔值并设置一个布尔成员变量(可能称之为moveLeft
)。然后,在move
中,检查布尔成员而不是检查Character.left
。 if (Character.right)
可能只是else
。