ページ 11

34章のメイン関数をアレンジしたのですが…

Posted: 2008年2月11日(月) 18:47
by <kor
ゲームプログラミングの館の34章、メイン関数の書き方をアレンジしてムービー&ミュージックプレイヤーを作ろうと思ってとりあえず単純に[オープニング⇒リスト⇒再生⇒終了]という感じなものを作ろうと思いソースを書いてみたのですが、
『構文エラー : ')' が、識別子 'function_status' の前に必要です』
という感じのエラーが出てできません。このソースのどこがいけないのでしょうか?どうかよろしくお願いします。
↓main.cpp↓
#include "DxLib.h"

int function_status=0,White;
char KeyBuf[ 256 ] ;

void Opening(){
DrawString(400,300,"迷宮再生録(Zを押してください)",White);
if(KeyBuf[KEY_INPUT_Z]==1)
function_status=1;
}

void Menu(){
DrawString(400,300,"PLAY→sweets time(Xを押してください)",White);
if(KeyBuf[KEY_INPUT_X]==1
function_status=2;
}

void Play(){
PlayMovie( "img/test.wmv" , 1 , DX_MOVIEPLAYTYPE_BCANCEL ) ;
if(KeyBuf[KEY_INPUT_C]==1
function_status=3;
}

void Ending(){
DrawString(100,260,"エンディング画面 (bをプッシュ)",White);
if(KeyBuf[KEY_INPUT_B]==1)
function_status=4;
}




int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了

White = GetColor( 255 , 255 , 255 ) ; //色の取得

SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定

while( 1 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る

switch(function_status){
case 0:
Opening();
break;
case 1:
Menu();
break;
case 2:
Play();
break;
case 3:
Ending();
break;
default:
DxLib_End() ; // DXライブラリ使用の終了処理
return 0;
break;
}

if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了

ScreenFlip() ; // 裏画面データを表画面へ反映
}

DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}

Re:34章のメイン関数をアレンジしたのですが…

Posted: 2008年2月11日(月) 19:10
by 組木紙織
>if(KeyBuf[KEY_INPUT_X]==1
>function_status=2;
>}

ここのところですか?

if(KeyBuf[KEY_INPUT_X]==1 )//ここの終わりの括弧を忘れています。
function_status=2;
}

Re:34章のメイン関数をアレンジしたのですが…

Posted: 2008年2月12日(火) 18:06
by <kor
あっ本当だ…
ありがとうございます。無事実行できました。
うっかりものですいません<(_ _)>

Re:34章のメイン関数をアレンジしたのですが…

Posted: 2008年2月12日(火) 18:11
by 管理人
コンパイラはわかりませんが、VSとかでしたら
「構文エラー : ')' が、識別子 'function_status' の前に必要です」
というエラーメッセージをダブルクリックしたらその行が確認できると思います。
コマンドプロンプトでもエラーが起きた行数が書いてあるのではないでしょうか。