Java用ゲームライブラリでの画像読み込みについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
海Sea
記事: 102
登録日時: 14年前
住所: 大阪
連絡を取る:

Java用ゲームライブラリでの画像読み込みについて

#1

投稿記事 by 海Sea » 12年前

いつもありがとうございます。
現在Java用ゲームライブラリを使用した開発を行っているところです。
しかし、どうしても画像の読み込みが、
どの様にパスを指定しても失敗し、エラーが発生してしまいます。
eclipseのプロジェクトには画像を追加しています。
どうパスを設定すればばうまく読み込みが行われるか、ご教授お願いします。

開発環境
・eclipse4.2(pleadesAllinonestandard)
・javaSE 7u21
・JavaSE向けビデオゲームライブラリ

コード:

//コード
package testgame;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;

import videogame.VGCanvas;
import videogame.VGFrame;
import videogame.image.VGImage;

public class Hello extends VGCanvas
{
	VGImage image;

	public Hello()
	{
		Image img = getResourceImage("jiki.png");//ここで読み込む画像を文字列で指定

		image = new VGImage(img,32,0,32,32);

	}

	protected void frameUpdate(int skipped)
	{
	        //
	    //  ゲームの内部状態を1フレーム分進行させる処理をここに書く
	    //
	}


	protected void frameRender(Graphics g)
	{
	    //
	    //  ゲーム画面を描く処理をここに書く
	    //
		g.setColor(Color.BLACK);
		g.fillRect(0, 0, 640, 480);
		image.paint(g,120,240, 0);
	}

    public static void main(String[] args)
        {
	      // 640×480の画面サイズでウインドウに載せて起動する
	      new VGFrame(new Hello(), 640, 480, "ゲーム画面");
	}

	
}

コード:

//エラー内容
Uncaught error fetching image:
java.lang.NullPointerException
	at sun.awt.image.URLImageSource.getConnection(Unknown Source)
	at sun.awt.image.URLImageSource.getDecoder(Unknown Source)
	at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
	at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
	at sun.awt.image.ImageFetcher.run(Unknown Source)


ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: Java用ゲームライブラリでの画像読み込みについて

#2

投稿記事 by ISLe » 12年前

同じJavaでも他のプラットフォームではほとんど意識しないことですが、Javaではクラスパスが重要です。
リソースファイルを検索する際にもクラスパスが意味を持ちます。

Eclipseでは、プロジェクトのプロパティで『Javaのビルド・パス』の『ライブラリー』タブで画像ファイルのあるフォルダを追加してください。

リソース種別ごとにサブフォルダを作って、相対パスを使うこともできます。
例えば
./res/image/jiki.png
というファイルは
クラスパスを ./res として、コードでは image/jiki.png と指定することができます。


ちなみに、Javaコマンドを使って手動で起動するときにアプリケーション固有の設定を行うには-cpオプションを使います。
jarファイルにパッケージするときは、MANIFEST.MFに記述します。

アバター
海Sea
記事: 102
登録日時: 14年前
住所: 大阪
連絡を取る:

Re: Java用ゲームライブラリでの画像読み込みについて

#3

投稿記事 by 海Sea » 12年前

ISLe さんが書きました:同じJavaでも他のプラットフォームではほとんど意識しないことですが、Javaではクラスパスが重要です。
リソースファイルを検索する際にもクラスパスが意味を持ちます。

Eclipseでは、プロジェクトのプロパティで『Javaのビルド・パス』の『ライブラリー』タブで画像ファイルのあるフォルダを追加してください。

リソース種別ごとにサブフォルダを作って、相対パスを使うこともできます。
例えば
./res/image/jiki.png
というファイルは
クラスパスを ./res として、コードでは image/jiki.png と指定することができます。


ちなみに、Javaコマンドを使って手動で起動するときにアプリケーション固有の設定を行うには-cpオプションを使います。
jarファイルにパッケージするときは、MANIFEST.MFに記述します。

ありがとうございます!
教えて頂いた通りにプロパティの設定をし、
Image img = getResourceImage("image/jiki.png");
としたら、画像を読み込むことができました。
Androidの時はこういう設定が無く、文字列でパス指定をするだけで
読み込みが可能だったので、ひとつ勉強になりました。

閉鎖

“C言語何でも質問掲示板” へ戻る