ゲームにはオープニング等で、よくアニメーションを表示させると思います。
そのオープニングを出すプログラムはできたのですが、
そのムービー(ではないですが)をスキップさせることができません。
#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です。