13章の敵に弾を撃たせるのでエラーが出て困っています
この章に入ると沢山のエラーが出てきて、何回見直してもダメだったので最初からやり直してもやはり同じ章でエラーの嵐が出てきます
今はなんとかエラーの数を減らせたのですが、このエラーが直せません
error C3861: 'graph_bullet': 識別子が見つかりませんでした
プログラムが根本的に間違っているのでしょうか?一応これじゃないかなって思うプログラムを貼ります
#include "../include/GV.h"
void graph_enemy(){
int i;
for(i=0;i<ENEMY_MAX;i++){
if(enemy.flag==1){
DrawRotaGraphF(enemy.x+FIELD_X,enemy.y+FIELD_Y,1.0f,0.0f,img_enemy[0][enemy.img],TRUE);
}
}
}
void graph_ch(){
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
}
void graph_board(){
DrawGraph( 0, 0,img_board[10],FALSE);
DrawGraph( 0, 16,img_board[11],FALSE);
DrawGraph( 0,464,img_board[12],FALSE);
DrawGraph(416, 0,img_board[20],FALSE);
}
void graph_main(){
graph_enemy();
graph_ch();
graph_bullet();
graph_board();
}
//弾丸の描画
void graph_bullet(){
int i,j;
SetDrawMode( DX_DRAWMODE_BILINEAR ) ;//線形補完描画
for(i=0;i<SHOT_MAX;i++){//敵の弾幕数分ループ
if(shot.flag>0){//弾幕データがオンなら
for(j=0;j<SHOT_BULLET_MAX;j++){//その弾幕が持つ弾の最大数分ループ
if(shot.bullet[j].flag!=0){//弾データがオンなら
if(shot.bullet[j].eff==1)
SetDrawBlendMode( DX_BLENDMODE_ADD, 255) ;
DrawRotaGraphF(
shot.bullet[j].x+FIELD_X, shot.bullet[j].y+FIELD_Y,
1.0, shot.bullet[j].angle+PI/2,
img_bullet[shot[i].bullet[j].knd][shot[i].bullet[j].col],TRUE);
if(shot[i].bullet[j].eff==1)
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
}
}
}
}
SetDrawMode(DX_DRAWMODE_NEAREST);//描画形式を戻す
}
エラーの原因
Re: エラーの原因
ある関数を呼び出すコードを書く「前」に、当該の関数のプロトタイプ宣言または実体が必要であるような気がします。
今のコードでは、どうも、graph_bullet関数の実体が後ろに来ているために、
graph_main関数のコンパイルをしようとする際、「graph_bullet関数なんて知らないよ」と
言われているような気がします。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: エラーの原因
龍神録の目的はソースを正確に打ち込むことではなく、打ち込む過程で間違いを修正する過程でC言語の学習を行うことが一つ。
そして、こう書かなければいけないかを理解することにあります。
C言語の知識と13章までの部分をちゃんと理解できているならgraph_bullet()については問題点を気づけるヒントは出ているはずと思うのですが・・・。
そして、こう書かなければいけないかを理解することにあります。
C言語の知識と13章までの部分をちゃんと理解できているならgraph_bullet()については問題点を気づけるヒントは出ているはずと思うのですが・・・。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。