如何获取图像/ JLabel的坐标?

时间:2015-04-12 14:01:45

标签: java image coordinates jlabel

我有一个游戏,其中包含一个篮子和水果落下的主要目的是抓住水果。我尝试获取水果的坐标和位置,但我无法让它工作。 有什么帮助吗?

这是我用来尝试获取坐标的代码,但由于.getMinX总是零和.getMinY,因此无法正常工作。我需要另一种获取协调或水果图像的方式。

public static void checkCollision(BufferedImage player)
    {
        double fruitOneLocation = image.getMinX() & image.getMinY();
        double playerLocation = player.getMinX() & player.getMinY();

1 个答案:

答案 0 :(得分:0)

如果您正在编写游戏,则您的玩家(和其他游戏对象)不能仅由图像对象表示。你应该为此编写自己的类。

以下是一个例子:

import java.awt.*;
public class Player {
  //X- and Y-Coordinates
  public int x,y;

  //Player graphic
  Image img=Toolkit.getDefaultToolkit().getImage("path.to.your.image.file");

  public Player(){

  }
  //Rendering method
  //You should call this in your frame class where you override paint(Graphics g)
  //or paintComponent(Graphics g)
  //
  //like this: player.draw(g,this)
  public void draw(Graphics g,JPanel jp){
    //Draw the Image at the right position
    g.drawImage(img,x,y,jp);
  }

  //Get X coordinate
  public int getX(){
    return x;
  }

  //Get Y coordinate
  public int getY(){
    return y;
  }

  //Update method
  //You should call this in your game loop
  public void update(){
    //Handle button presses, collision testing or other stuff relating
    //the player object here
  }

}

如您所见,您可以直接访问和控制玩家的坐标。你应该为你的所有游戏对象写一个这样的类。