画像が描画できなくなった

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
もんの

画像が描画できなくなった

#1

投稿記事 by もんの » 1年前

現在Dxライブラリを用いてSTGを制作しています。言語はC++です。
画像を描画できないという質問は検索したところ多く見られましたが、自分の場合はそれらとは少し状況が異なるため質問させていただきました。具体的には、新しく保存した画像がDrawGraphなどで描画できなくなってしまいました。これまで(11月末)にファイルに保存しておいた画像は描画できるのですが、同じファイル内に新しく保存した画像は全く描画できません。拡張子は間違えていないで、画像に問題があるのかと思い、以前保存した画像と同じものを名前を変えて同じファイル内に保存したのですが、それも描画できません。以前から保存しておいた画像は描画できるので、コード自体に誤りはないと思うのですが、何が原因で描画できないのか分かりません。ご助言をいただけると幸いです。

コード:

#include "DxLib.h"
#include "ENEMY.h"
#include "define.h"
#include "CONTROLALL.h"
#include <math.h>

ENEMY::ENEMY() {
	LoadDivGraph("enemy2.png", 12, 3, 4, 32, 32, gh);
	esgh = LoadGraph("star3.png"); //
	}

void ENEMY::MOVE() {
	CONTROL& ControL = CONTROL::GetInstance();
	double px, py, psx, psy;
	ControL.GetPLAYERPosition(&px, &py);
	
	if (in_time < g_count && g_count < stop_time && deadflag == false) {
		if (x < px) x += 1, result = 6;
		if (x > px) x -= 1, result = 3;
		if (y < py) y += 1, result = 0;
		if (y > py) y -= 1, result = 9;
		}

	}

void ENEMY::SHOT() {
	CONTROL& ControL = CONTROL::GetInstance();
	double px, py;
	escounter++;
	

	if (esflag == 0) {
		if (escounter%6==0 && deadflag == false) {
			ControL.GetPLAYERPosition(&px, &py);
			esx = x + 15; //弾の初期x座標
			esy = y + 15; //弾の初期y座標
			sx = (x + 32) / 2;
			sy = (y + 32) / 2;
			bx = (px + 32) / 2;
			by = (py + 32) / 2;
			sbx = bx - sx;
			sby = by - sy;

			sb = sqrt(sbx * sbx + sby * sby);
			ESX = sbx / sb * 4;
			ESY = sby / sb * 4;

			esflag = 1;
		}
	}


}


void ENEMY::DRAW() {

	CONTROL& ControL = CONTROL::GetInstance();
	double px, py;
	ControL.GetPLAYERPosition(&px, &py);
	
	if (esflag == 1) {
			esx += ESX;
			esy += ESY;
			
			if (esy < -150 || esy > 450 || esx < -150 || esx > 450) {
				esflag = 0;
			}

			else if (((esx > px && esx < px + 32) || (esx - 16 < px && esx + 16 > px)) &&
				((esy - 16 > py && esy < py + 48) || (esy - 16 < py && esy + 16 > py))) {
				esflag = 0;
				life--;
			}

			
			DrawRotaGraph(esx, esy, 0.1, 0.0, esgh, TRUE);
		}
		int Green = GetColor(0, 255, 0);      // 緑の色コードを取得
			DrawFormatString(500, 100, Green, "LIFE[% d]", life); // 文字を描画する

	if (in_time < g_count && g_count <= out_time && deadflag == false) {
			DrawGraph(x, y, gh[result], TRUE);
			}
		
	else if (g_count > out_time && deadflag == false) {
			DrawGraph(x, y, gh[10], TRUE);
}
		
		}


void ENEMY::GetPosition(double* ex, double* ey) {
	*ex = this->x;
	*ey = this->y;
}


bool ENEMY::ALL() {
	MOVE();
	DRAW();
	SHOT();
	
	count++;
	return endflag;
}

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 画像が描画できなくなった

#2

投稿記事 by あたっしゅ » 1年前

東上☆海美☆「

ドライブのエラーチェックをしたほうがいいかも。
ドライブのプロパティを開いて、ツール タブの エラー チェック みみ。 


> これまで(11月末)にファイルに保存しておいた画像は描画できるのですが、同じファイル内に新しく保存した画像は全く描画できません。

『同じフォルダ内』じゃなくて、『同じファイル内』ですか ?
それとも、別の意味があるみみ ?
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

もんの

Re: 画像が描画できなくなった

#3

投稿記事 by もんの » 1年前

>それとも、別の意味があるみみ ?

ファイルの間違いです。紛らわしくなってすみません。

>ドライブのエラーチェックをしたほうがいいかも。
ドライブのプロパティを開いて、ツール タブの エラー チェック みみ。 

エラーチェックしてみたのですが、エラーは検出されませんでした。他に何か考えられうる原因はありますでしょうか?

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 画像が描画できなくなった

#4

投稿記事 by あたっしゅ » 1年前

東上☆海美☆「
最新の DxLib に update してみる、とかぐらいしか、思いつかんみみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

もんの

Re: 画像が描画できなくなった

#5

投稿記事 by もんの » 1年前

他の手段も試してみます。ありがとうございました。

dic
記事: 657
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: 画像が描画できなくなった

#6

投稿記事 by dic » 1年前

pngは結構特殊な画像フォーマットなので、ビットマップや、jpgで試してみたらどうでしょうか?
あと、ファイルのパスが間違っていないか、もう一度確認することもしてみてください。
GetCurrentDIrectory( で現在のフォルダを取得して、print_f( などで出力するか、
デバッカーでGetCurrentDirectry( で止めて変数を確認してみてください。

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 画像が描画できなくなった

#7

投稿記事 by あたっしゅ » 1年前

東上☆海美☆「
ソースコード的には、#6でも書いてあるように、

Open 出来ているか ? ⇒ 出来ていないならフォルダの位置指定があやしい。
Open 出来るが Load 出来ない ⇒ グラボのドライバ等を update してみる。

ソースコード以外としては、
DirectX を update するとか。Windows11 に update するとか。
開発マシン以外で動かしてみる。友達の PC とか、中古買うとか。その場合、グラボの種類が違う奴
NVIDIA で開発しているなら、AMD や Intel のグラボのマシンで試す。
市販ゲームやフリーゲームを動かしてみて、他の Game でも、異常が起きるか調べる。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

もんの

Re: 画像が描画できなくなった

#8

投稿記事 by もんの » 1年前

解決いたしました。ファイルのパスの誤りでした。描画できている画像と同じパスだから間違っているはずがないと思い込んでいましたが、その描画できていた画像はたまたま他のファイルと該当のファイルの両方に保存してあったため描画できていたのでした。久しく画像の追加を行っていなかったため、忘れていました。
お二方、貴重なお時間を奪ってしまい、大変申し訳ございませんでした。

返信

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