画像の描画でエラーが出ます(ハンドル取得ができていない?)
Posted: 2007年10月07日(日) 13:17
はじめまして。つい最近にこちらを参考にシューティングゲームを作り始めた者です。
サンプルを魔改造しながらなんとか完成させようと奮闘しているのですが、ある処理をするとエラーが出てしまいます。
その処理とは、敵撃破時に画像を表示するだけの単純なものなのですが、ビルドすると『player.obj : error LNK2001: 外部シンボル ""int img_enemy_death" (?img_enemy_death@@3HA)" は未解決です。』といったエラーが出てしまいます。
サンプルの『ExternGV.h』と『GlobalVariable.h』で『img_enemy_death』というハンドルを取得し、『img_sound_load.cpp』で『img_enemy_death = LoadGraph("Sh/img/mons/enemy_death0.png")』として画像をロード、『player.cpp』にある『CollisionDetection()』関数内の当たり判定if内に『DrawGraph(0,0,img_enemy_death,FALSE)』で表示(描画位置は考慮していません)しているのですが……。
ソースはこんな感じです↓
if( (int)sqrt(x*x+y*y) < range+enemy.range){ //当たり判定内なら
DrawGraph(0,0,img_enemy_death,FALSE); //画面左上端に画像表示
enemy.flag=0; //表示フラグを戻す
PlayerShot[j].flag=0; //あたった弾を消す
if(CheckSoundMem(sound_enemy_death)==1) //消滅音がなっていなかったら
StopSoundMem(sound_enemy_death); //とめて
PlaySoundMem(sound_enemy_death,DX_PLAYTYPE_BACK); //消滅音をならす。
}
色々試行錯誤してみたところ、どうやら『ExternGV.h』と『GlobalVariable.h』で取得しているはずの『int img_enemy_death』がちゃんと機能していないようなのです。まぁ当たり判定if内で直接画像を読み込み表示すれば解決したのですが、この先たくさんの画像を読み込んで表示することを思うと、サンプルにあるように読み込みを纏めておきたいんです。
おそらく『ファイル場所を変えたら音楽が流れません』というトピックと同じ症状だと思うのですが、解決策がわからなかったので質問しました。
ちなみに環境はXPでVC++Exp、SDKの読み込みはきちんとできているはずです。どなたか回答お願いできないでしょうか。
よろしくおねがいします……。
サンプルを魔改造しながらなんとか完成させようと奮闘しているのですが、ある処理をするとエラーが出てしまいます。
その処理とは、敵撃破時に画像を表示するだけの単純なものなのですが、ビルドすると『player.obj : error LNK2001: 外部シンボル ""int img_enemy_death" (?img_enemy_death@@3HA)" は未解決です。』といったエラーが出てしまいます。
サンプルの『ExternGV.h』と『GlobalVariable.h』で『img_enemy_death』というハンドルを取得し、『img_sound_load.cpp』で『img_enemy_death = LoadGraph("Sh/img/mons/enemy_death0.png")』として画像をロード、『player.cpp』にある『CollisionDetection()』関数内の当たり判定if内に『DrawGraph(0,0,img_enemy_death,FALSE)』で表示(描画位置は考慮していません)しているのですが……。
ソースはこんな感じです↓
if( (int)sqrt(x*x+y*y) < range+enemy.range){ //当たり判定内なら
DrawGraph(0,0,img_enemy_death,FALSE); //画面左上端に画像表示
enemy.flag=0; //表示フラグを戻す
PlayerShot[j].flag=0; //あたった弾を消す
if(CheckSoundMem(sound_enemy_death)==1) //消滅音がなっていなかったら
StopSoundMem(sound_enemy_death); //とめて
PlaySoundMem(sound_enemy_death,DX_PLAYTYPE_BACK); //消滅音をならす。
}
色々試行錯誤してみたところ、どうやら『ExternGV.h』と『GlobalVariable.h』で取得しているはずの『int img_enemy_death』がちゃんと機能していないようなのです。まぁ当たり判定if内で直接画像を読み込み表示すれば解決したのですが、この先たくさんの画像を読み込んで表示することを思うと、サンプルにあるように読み込みを纏めておきたいんです。
おそらく『ファイル場所を変えたら音楽が流れません』というトピックと同じ症状だと思うのですが、解決策がわからなかったので質問しました。
ちなみに環境はXPでVC++Exp、SDKの読み込みはきちんとできているはずです。どなたか回答お願いできないでしょうか。
よろしくおねがいします……。