2D游戏:子弹左右射击

时间:2013-10-09 02:01:47

标签: java 2d-games

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

1 个答案:

答案 0 :(得分:0)

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