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

0

子弹需要知道它的初始方向,所以在构造函数中传递一个布尔值并设置一个布尔值成员变量(可能调用它moveLeft)。然后,在 中move,检查布尔成员而不是检查Character.leftif (Character.right)可能只是else一个.

于 2013-10-09T02:07:27.420 回答