LoadDivGraphで対象画像を用意してない場合、なにが入ってるの?

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

LoadDivGraphで対象画像を用意してない場合、なにが入ってるの?

#1

投稿記事 by ゆーいち » 5年前

コード:

int Font_gh[3];
LoadDivGraph("画像パス",3,1,3,120,120,Font_gh);
上記を実行した場合のFont_gh[0][1][2]の要素内の値の推移ですが
最初はFont_gh[-842150451][-842150451][-842150451]となっていますよね?
そのあと、対象の画像があれば、読み込み後
Font_gh[115540685][115535878][115544649]
などと、要素の中に数値が入っていました。
まあ、これはわかるんですが、
問題はその対象の画像を用意していなかった場合で、
自分の想像では
Font_gh[-842150451][-842150451][-842150451]
のままになってしまうのだと思っていたんですが
実際、デバッグして覗いてみると
Font_gh[116654813][116720350][116785887]
と値が入ってしまいます。
パス上の画像は存在しないのにです。

これは、どーいうことでしょうか??
ためしにDrawGraphでFont_ghを描画してみても
何も描画はされません。

ちなみに、これを疑問に思う経緯ですが
DXライブラリのバージョンを更新しましたら
製作中のゲーム内で一箇所だけ、画像が表示されなくなったんです。
なぜ、そこだけ画像が表示されなくなったのかを調べていまして
というか、version更新後、ソースも素材も一切変えてないのに、
一箇所だけ画像が描画されない状況に、大変参っています。
DXライブラリを新しいのに変えたあと、
Visual Studioの方でプロジェクトを開き、
ソリューションのリビルド、ゲームのリビルドを行ったあとです。
どんな原因が推測されますか?わかる方、教えてください。

ゆーいち

Re: LoadDivGraphで対象画像を用意してない場合、なにが入ってるの?

#2

投稿記事 by ゆーいち » 5年前

自己解決しました。
が、解せません。

その画像だけ、描画してくれません。
いや、厳密には、どうやら黒塗りじょうたいで描画されていました。
画像は、黒背景に白で字を書いた長方形の画像です。

で、ソース側は徹底的に確認して問題なかったんで
画像側を調べていたんですが、
winに備え付けのペイントツールで
その画像を開き、なにもせず、
上書き保存したところ問題なく正常に描画されるようになりました。

これは、DXライブラリのversionアップ後に起きるバグのひとつでしょうか?
解決したので安心ですが
DXライブラリ製作者様が把握していらっしゃるのか、気になりました。

一応、流れはこうです。
古いversionだったDXライブラリを、最新のものにした。
古いDXライブラリで製作し、正常に機能していたゲームをリビルド。
実行してみると、ひとつだけ描画されなくなった画像を発見。
真っ黒で描画されている模様。
デバッグで確認、描画はしている状態でソースは問題なし。
画像を複製してそれを使ってみたり、画像の名前を変えてみたりしても描画されず。

白が描画されないのかと画像をペイントで開き、
その画像の上に赤で線を引き、上書き保存してみる。
再度、ゲームを実行。
画像が描画される様になる(赤とその下の白も正常に描画される。
どーいうことかと、赤で上書きした画像を破棄し、
元の黒背景に白で字を書いてる画像をペイントで開いて
今度はなにもせずに上書き保存してみる。

再度ゲームを実行。
画像が描画される様になる。
解決!

でも、なにが起きてたの?状態。

返信

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