0

スイング初心者です。packman の作成について wilchit sombat によるゲーム チュートリアルを試していました。を表示できませんBufferedImage。以下は、ゲーム エンジンのいくつかのメソッドをオーバーライドするコードです。

package game.packman;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

import org.Game.Engine.Game;
import org.Game.Engine.GameApplication;

public class PackMan extends Game {

    public static void main(String args[]) {
        GameApplication.start(new PackMan());
    }

    BufferedImage packman;

    public PackMan() {
        title = "PACKMAN";
        width = height = 400;
        try {
            packman = ImageIO.read(new File("images/pacmanimg.xcf"));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

    @Override
    public void init() {


        // TODO Auto-generated method stub

    }

    @Override
    public void update() {
        // TODO Auto-generated method stub

    }

    @Override
    public void draw(Graphics g) {
        g.drawImage(packman, 100, 100, null);


    }

}
4

2 に答える 2

0

packman読み込み後の画像サイズの確認

packman = ImageIO.read(new File("images/pacmanimg.xcf"));

画像がロードされていない場合、幅/高さは 0 です。

とにかく、イメージをクラスパスに配置し、getResourceAsStream() を使用して ImageIO を介してロードすることをお勧めします。逆に、コードを jar にパックする場合は、ファイルの操作と相対パスの問題を解決する必要があります。

于 2013-11-08T07:36:14.837 に答える