getX()适用于我的所有类,除了这一个

时间:2015-06-10 15:08:09

标签: java methods getter

所以我为我的FishingPole类制作了代码,并制作了一个Player的实例。

Player player = new Player();
ImageLoader loader = new ImageLoader();
BufferedImage imageFile = loader.loadImage("/Pictures/fishingLine.png");
BufferedImage image = imageFile;

public double x, y;
public static final double FIXED_Y = 251;

Game game;

public FishingPole(Game game){
    this.game = game;
}

public void tick(){
    x = player.getX();
}
public void render(Graphics g){
    g.drawImage(image, (int)x, (int)y, game);
}

public void moveDown(){

}
public void reelIn(){

}

tick方法每次进入我的游戏循环。但是,钓鱼线图像不随我的播放器移动。我试图这样做,看看我的getX()方法是否工作

public void tick(){
    x = player.getX();
    System.out.println(player.getX());
}

那个时候,当我移动我的播放器时,它一直在说我的播放器的默认位置。我也在其他类中测试了这个方法,它运行正常。这是我的getX()方法的代码。

public double getX() {
    return this.x;
}

1 个答案:

答案 0 :(得分:1)

您似乎在类的顶部创建了一个新的Player()实例。尝试在构造函数中传入Player对象(就像使用Game一样),然后从中获取X.

您的代码如下所示:

Player player = null;

[snip]

public FishingPole(Game game, Player player){
    this.game = game;
    this.player = player;
}