ページ 1 / 1
プログラミングの関連付け?
Posted: 2010年9月15日(水) 11:20
by ななしん
はじめまして。
最近ゲームプログラミングを始めてこのサイトに出会いました
質問なんですが、ソースファイルを複数作成して、関連を持たせるにはどうしたらよいのでしょうか?
たとえば、タイトル画面と次のゲーム画面を別のソースファイルで作成しようとすると
すでに定義されているため使えませんというエラーが表示されてしまいます。
ほかのサイトも見ているのですが、いまいち理解できません
Re:プログラミングの関連付け?
Posted: 2010年9月15日(水) 12:13
by fatens
>たとえば、タイトル画面と次のゲーム画面を別のソースファイルで作成しようとすると
>すでに定義されているため使えませんというエラーが表示されてしまいます。
それらのソースやエラーメッセージなどを書いていただかないと、
こちらにはどういう状況なのか分かりません。
使用しているライブラリやコンパイラなどについても書いてください。
Re:プログラミングの関連付け?
Posted: 2010年9月15日(水) 12:49
by ななしん
説明不足ですみません
#include "DxLib.h"
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
else KeyStateBuf=0;
}
return 0;
}
void char_disp(int White,int y){
DrawString( 180 , y , "■" , White );
DrawString( 200 , 240 , "はじめから" , White );
DrawString( 200 , 280 , "続きから" , White );
DrawString( 200 , 320 , "終わり" , White );
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
int White , y=240; //色とy座標の宣言
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
White = GetColor( 255 , 255 , 255 ) ; //色の取得
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
char_disp(White,y); // 文字を描画
if( Key[KEY_INPUT_DOWN]==1 ||( Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
y+=40;
if(y==360) // y座標が320なら(選択が一番下なら)
y=240; // 選択座標を一番上に
}
else if( Key[KEY_INPUT_UP]==1 ||( Key[KEY_INPUT_UP]%5==0 && Key[KEY_INPUT_UP]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
y-=40;
if(y==200) // y座標が160なら(選択が一番下なら)
y=320; // 選択座標を一番下に
}
ScreenFlip();//裏画面反映
}
DxLib_End();
return 0;
}
ともうひとつサンプルを作ったのですが
WinMain@16 は既に gazou.obj で定義されています。
game-test\Debug\game-test.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
というエラーがでてしまいます
Re:プログラミングの関連付け?
Posted: 2010年9月15日(水) 12:52
by softya
プログラム中にWinMain関数はひとつだけしか存在できません。
まず、1つのソースファイルにまとめてみてはどうでしょうか?
2つ以上のソースファイル、1つのWimMain、幾つかの関数で構成することも出来ますが難易度が高くなります。
参考 ↓
http://www.geocities.jp/ky_webid/c/032.html
Re:プログラミングの関連付け?
Posted: 2010年9月15日(水) 12:56
by softya
タイトルと本編の切り替えは、「ゲームプログラミングの館 34. メイン関数の書き方。」が参考になると思います。
http://dixq.net/g/37.html
Re:プログラミングの関連付け?
Posted: 2010年9月15日(水) 14:26
by ななしん
わかりました。
御説明ありがとうございました
自分でもごちゃごちゃしてるみたいなんで一度整理して始めたいと思います
Re:プログラミングの関連付け?
Posted: 2010年9月15日(水) 15:49
by アトラス
http://dixq.net/rp/5.html
複数のソースファイルを使うことに関しては↑のページ辺りを理解すればいいですよ。