ゲームにはオープニング等で、よくアニメーションを表示させると思います。
そのオープニングを出すプログラムはできたのですが、
そのムービー(ではないですが)をスキップさせることができません。
#include "DxLib.h"
void opening()
{
int op_img[115];
char path[64];
int i;
/*アニメーション動画のロード*/
for(i=0; i<115; i++)
{
sprintf(path, "../data/img/opening/op_%03d.png", i);
op_img = LoadGraph(path);
}
/*アニメーション再生*/
for(i=0; i<115; i++)
{
for(int j=0; j<10; j++){
//DrawGraph(0, 0, op_img, TRUE);
ScreenFlip();
wait_fanc();
if(Key[KEY_INPUT_Z] >= 1){
goto EXIT;
}
}
}
EXIT:
func_state = 2;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードにする。
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll_2( Key ) && !Key[KEY_INPUT_ESCAPE]){//メインループ
switch(func_state){
/*ゲーム機動時のステータス*/
case 0:
load();
load_kanto();
ch.x =16*32;
ch.y =60*32;
ch.walking_flag=0;
ch.muki=3;
func_state=1;
break;
/*オープニング*/
case 1:
opening();
break;
/*オープニングセレクト*/
case 2:
op_select();
SetDrawBright(255,255,255); //輝度値のリセット break;
/*マップ上のステータス*/
case 100:
(省略)
if(func_state!=0 && func_state!=1 && func_state!=2)
sound();
ScreenFlip();//裏画面反映
wait_fanc();//リフレッシュレートを60に
}
DxLib_End();//DXライブラリ終了処理
return 0;
}開発環境はVC++ 2008 EEです。