トップページ > 記事閲覧
敵の画像が正しく描画されない。
名前:マーク42 日時: 2020/01/18 00:40

環境Windows10 会話後にバトルがスタートするように作ったのですが画像の読み込みが遅いためか関数battle_Initialize()に含まれる敵の画像が初期の位置で描画されません。 なので、バトルが開始するまでの間にbattle_Initialize() を呼び出して画像を読み込もうとしたのですが敵が初期位置に居る間だけは描画されません。 移動すると描画されます。 こちらのプログラムのように読み込みの部分を関数ではなく、ただ単純に書いた場合は実行と同時にちゃんと描画されます。 //pastebin.com/qJsfiNfC 今回はプログラムが長くなったのでヘッダファイルを作り小分けにしました。 なぜバトルが開始するまでの間のtalk.hの if (start > 0 && ++start <= 100) { DrawFormatString(300, 300, RED, "battle startします"); battle_Initialize(); } より関数battle_Initialize()を呼んだのに開始後の初期の位置で何も描画されないのかわかりません。 仮に関数の呼び出す方法で解決方法がない場合はメインの方にそのまま画像の情報を書き込むという方法があると思い作ってみたのですが、 変数のヘッダファイルの方から画像に関するプログラムを抜き取り作ってみたんですがエラーが出ました。なぜでしょうか。 プログラムはこちらです。 //pastebin.com/cDahKbcb 以下は小分けにした全体のプログラムです。 ゲームの内容に関するメインプログラムです。 //pastebin.com/QWZGYTHR 変数を扱うヘッダファイル //pastebin.com/1iFJZDFp タイトルのヘッダファイル //pastebin.com/kSg4CDu2 コンティニューのヘッダファイルです。 //pastebin.com/qURfZ4Xs ボタンに関するヘッダファイルです //pastebin.com/JaVEHZAE バトルに関するヘッダファイルです //pastebin.com/xMsWDmj3
メンテ

Page: 1 |

Re: 敵の画像が正しく描画されない。 ( No.1 )
名前:マーク42 日時:2020/01/18 03:52

あの後、以下のようにバトルに関するヘッダファイルの部分に以下のものを加えました。 //敵を描画 if (enemystayhere == 0) { DrawExtendGraph(pos[enemyY][enemyX][0] - 14, pos[enemyY][enemyX][1] - 66, pos[enemyY][enemyX][0] + 64, pos[enemyY][enemyX][1] + 66, enemyImage, TRUE); } if (stayhere == 1) { ++enemystayhere; } if (enemystayhere > 0 && enemystayhere < 500) { DrawExtendGraph(pos[1][4][0] - 14, pos[1][4][1] - 66, pos[1][4][0] + 64, pos[1][4][1] + 66, enemyImage, TRUE); } if (enemystayhere > 500) { enemystayhere = 0; stayhere = 0; enemymovelock = 0; } しかし、if (enemystayhere > 0 && enemystayhere < 500)での描画が出来ません。何時間も考えましたがわからないままです。 どうか解決のために知力を貸してください。 こちらはバトルに関する新しいヘッダファイルです。 //pastebin.com/TrFkBqdu 新しいメインプログラムです。 //pastebin.com/z0VEhu7a 新しい変数のヘッダファイルです。 //pastebin.com/zKxRaZQc その他のヘッダファイルはいじっていません。
メンテ
Re: 敵の画像が正しく描画されない。 ( No.2 )
名前:マーク42 日時:2020/01/18 16:38

敵の画像はこちらのサイトの画像を使わせて頂きました。 //bituse.info/game/21
メンテ
Re: 敵の画像が正しく描画されない。 ( No.3 )
名前:管理人 日時:2020/01/19 04:14

使用されている環境はWindows10とのことですが、使用されているソフトは何でしょうか?( VisualStudio 2019 など )
メンテ
Re: 敵の画像が正しく描画されない。 ( No.4 )
名前:マーク42 日時:2020/01/19 04:39

解答ありがとうございます!はい、使用しているソフトはVisualStudio 2019 でDXライブラリはバージョンはわかりませんが2019年のモノを使わせて頂いています。
メンテ
Re: 敵の画像が正しく描画されない。 ( No.5 )
名前:マーク42 日時:2020/01/19 04:41

画像は twitter.com/OnslaughtA/status/1218541632762499073 に載せたものを使っています。
メンテ
Re: 敵の画像が正しく描画されない。 ( No.6 )
名前:マーク42 日時:2020/01/19 08:30

あのお手数ばかりおかけして申し訳ないのですが、管理人様の方では正しく動いておりますでしょうか? 最近PCの調子が悪くて、その影響もあるかもと思いっております。
メンテ
Re: 敵の画像が正しく描画されない。 ( No.7 )
名前:管理人 日時:2020/01/19 13:46

VisualStudio2019 でしたら、 DrawExtendGraph(pos[1][4][0] - 14, pos[1][4][1] - 66, pos[1][4][0] + 64, pos[1][4][1] + 66, enemyImage, TRUE); の行にブレークポイントを置いて( カーソルを↑の行に移動してF9キーを押すと置けます ) デバッグ実行( F5キーでデバッグ実行です )してみて、↑の行で処理が止まったら enemyImage に グラフィックハンドルが入っているか値を確認してみてください ( プログラム中の enemyImage と書かれているところにマウスカーソルを重ねたまま1秒ぐらい待っていると  enemyImage の変数の値が表示されます ) > あのお手数ばかりおかけして申し訳ないのですが、管理人様の方では正しく動いておりますでしょうか? 実行は試していません 「ボタンに関するヘッダファイル」や「バトルに関するヘッダファイル」などありますが、それぞれ ファイル名は何でしょうか?
メンテ
Re: 敵の画像が正しく描画されない。 ( No.8 )
名前:マーク42 日時:2020/01/19 23:44

debugの詳しいやり方ありがとうござまいす。 それぞれにヘッダファイル名を書きました。 ゲームの内容に関するメインプログラムです。 //pastebin.com/QWZGYTHR playerhennsuu.h //pastebin.com/1iFJZDFp taitol.h //pastebin.com/kSg4CDu2 countine.h //pastebin.com/qURfZ4Xs key.h //pastebin.com/JaVEHZAE player.h //pastebin.com/xMsWDmj3
メンテ
Re: 敵の画像が正しく描画されない。 ( No.9 )
名前:マーク42 日時:2020/01/20 00:27

書いていただいた通りdebugしたところ、自己解決できました! if (enemystayhere > 0 && enemystayhere < 50) { enemyImage = enemyGHandle[11]; DrawExtendGraph(pos[1][4][0] - 14, pos[1][4][1] - 66, pos[1][4][0] + 64, pos[1][4][1] + 66, enemyImage, TRUE); } とデバッグした際にenemyImageの値が0だったのですが、 enemyImage = enemyGHandle[11]を前に加えたところ enemyImageに enemyGHandle[11]の値が代入されenemystayhere > 0 && enemystayhere < 50の間ちゃんと描画されました! 多分描画関数を再度使った際にその描画関数にenemyImage = enemyGHandle[11]などの情報が入るかを書いていないため 何も描画されなかったのかもしれません。playhennsuu.hで既ににenemyImage = enemyGHandle[11]と定義していたので、勘違いして描画関数に 勝手に代入されると勘違いしていました。
メンテ
Re: 敵の画像が正しく描画されない。 ( No.10 )
名前:管理人(解決) 日時:2020/01/21 01:06

自己解決できたようで何よりです 正常に描画できなかった原因については、確かにその通りですね 定義に書かれた代入処理は WinMain 関数が始まる前に実行されますので…
メンテ
Re: 敵の画像が正しく描画されない。 ( No.11 )
名前:マーク42 日時:2020/01/21 14:33

debugの詳しい方法を教えて頂いたことで自己解決できました。 どうもありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存