竜神録 第5章について
-
mepotaso
竜神録 第5章について
第5章の最後に、変数の定義部とextern宣言を「main.cpp」「graph.cpp」「load.cpp」から消すと書いてありましたが、extern宣言とは「extern int ~ ;」 までの部分を全部消して、変数の定義部というのは「int ~ ;」までの部分を消せばいいのですか?教えてください。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 竜神録 第5章について
そうです。その通りにしてうまくいきませんでしたか?
Re: 竜神録 第5章について
多分記述が間違っているからでしょう。
コード全体を貼っていただけますか?
もしくはPerlかなんかで変換スクリプトを書いていただくか。
コード全体を貼っていただけますか?
もしくはPerlかなんかで変換スクリプトを書いていただくか。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
-
mepotaso
Re: 竜神録 第5章について
main
#define GLOBAL_INSTANCE
#include "../include/GV.h"
//データのロード
extern void load();
//描画メイン
extern void graph_main();
int img_ch[2][12]; //キャラクタ画像9枚分 X2(変身用)
ch_t ch; //キャラクタデータ
//ループで必ず行う3大処理
int ProcessLoop(){
if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
GetHitKeyStateAll_2();//現在のキー入力処理を行う
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
load();//データロード
while(ProcessLoop()==0){//メインループ
graph_main();//描画メイン
if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
ScreenFlip();//裏画面反映
}
DxLib_End();//DXライブラリ終了処理
return 0;
}
load
#include "../include/GV.h"
void load(){
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
}
graph
#include "../include/GV.h"
extern ch_t ch;
void graph_ch(){
DrawRotaGraphF(ch.x,ch.y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
}
void graph_main(){
graph_ch();
}
コードってこれのことですか?初心者なのでextern void のところなども消していいか分かっていません。そこのところも教えてください。お願いします。
#define GLOBAL_INSTANCE
#include "../include/GV.h"
//データのロード
extern void load();
//描画メイン
extern void graph_main();
int img_ch[2][12]; //キャラクタ画像9枚分 X2(変身用)
ch_t ch; //キャラクタデータ
//ループで必ず行う3大処理
int ProcessLoop(){
if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
GetHitKeyStateAll_2();//現在のキー入力処理を行う
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
load();//データロード
while(ProcessLoop()==0){//メインループ
graph_main();//描画メイン
if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
ScreenFlip();//裏画面反映
}
DxLib_End();//DXライブラリ終了処理
return 0;
}
load
#include "../include/GV.h"
void load(){
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
}
graph
#include "../include/GV.h"
extern ch_t ch;
void graph_ch(){
DrawRotaGraphF(ch.x,ch.y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
}
void graph_main(){
graph_ch();
}
コードってこれのことですか?初心者なのでextern void のところなども消していいか分かっていません。そこのところも教えてください。お願いします。
Re: 竜神録 第5章について
GV.hを見せてください。
コードはcodeタグで囲んでいただけるとありがたいです。
エラーメッセージ、もしくはコンパイルが通る場合は想定する挙動と実際の挙動も貼っていただけるとありがたいです。
コードはcodeタグで囲んでいただけるとありがたいです。
エラーメッセージ、もしくはコンパイルが通る場合は想定する挙動と実際の挙動も貼っていただけるとありがたいです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
-
mepotaso
Re: 竜神録 第5章について
mainファイル内でGLOBAL_INSTANCEを定義したあとにincludeしたGV.hで定義されたch_t ch;と、
mainファイルで定義されたch_t ch;がかぶっています。
int img_ch[2][12];も同様です。
各ファイルの以下の行を消してください。
●mainファイル内
int img_ch[2][12]; //キャラクタ画像9枚分 X2(変身用)
ch_t ch; //キャラクタデータ
●loadファイル内(消すべき行はありません)
●graphファイル内
extern ch_t ch;
extern voidのところは(意味を厳密に特定できないので多分ですが)externを消してfunction.hに書けば、
mainファイルからは消していいと思います。
mainファイルで定義されたch_t ch;がかぶっています。
int img_ch[2][12];も同様です。
各ファイルの以下の行を消してください。
●mainファイル内
int img_ch[2][12]; //キャラクタ画像9枚分 X2(変身用)
ch_t ch; //キャラクタデータ
●loadファイル内(消すべき行はありません)
●graphファイル内
extern ch_t ch;
extern voidのところは(意味を厳密に特定できないので多分ですが)externを消してfunction.hに書けば、
mainファイルからは消していいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)