1
所以我面臨的情況是我一直堅持一個小時。如何從Java中的遊戲畫布添加單獨的圖像
這是我的情況:我想添加一個圖像,說「生活:」與我的遊戲畫布分開,非常像這個遊戲塞爾達傳說中的NES。
問題是:我的代碼仍然只顯示我的遊戲畫布。
public class Game extends Canvas {
private Game(){
JFrame container = new JFrame("Arcade Shooter Clone");
panel = (JPanel)container.getContentPane();
panel.setLayout(new BorderLayout());
panel.add(this,BorderLayout.CENTER);
ShipLifeTitle shipLifeTitle = new ShipLifeTitle();
panel.add(shipLifeTitle,BorderLayout.SOUTH);
}
}
public class ShipLifeTitle extends Sprite {
private Image image;
public ShipLifeTitle()
{
try
{
image = ImageIO.read(new File("src/Ship/shipLifeTitle.PNG"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
@Override
public void draw(Graphics g) {
// TODO Auto-generated method stub
g.drawImage(image, 200, 200, null);
}
}
public class Sprite extends Component implements GameComponent {
public Vector2D position;
public Vector2D velocity;
@Override
public void update(long milliseconds) {
// TODO Auto-generated method stub
}
@Override
public void draw(Graphics g) {
// TODO Auto-generated method stub
}
}
我這樣做是根據您的反饋,但它並沒有讓這種語法,而不是我不得不像這樣的代碼: public Dimension getPreferredSize(){ return new Dimension(image.getWidth(null),image.getHeight(null)); }現在南部地區有一個灰色區域,並且仍然不顯示圖像。我的ShipLifeTitle是一個精靈,而不是一個面板。 – Nicholas 2013-02-09 01:54:49
對不起,我使用'BufferedImages'使用' – MadProgrammer 2013-02-09 02:11:22
我假設'Sprite'正在從它的'paintComponent'方法調用'draw',你已經把這部分代碼留給了... – MadProgrammer 2013-02-09 02:12:12