bool CMain::GameClear(){ int timecount=0; while( BasicLoop() ){ if (timecount<255) { SetDrawBlendMode(DX_BLENDMODE_ALPHA, timecount); }else{ SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); if (int(timecount/40)%2) DrawCenterString(WINDOW_WIDTH/2, (int)(WINDOW_HEIGHT*4/5), "Z→タイトルへ戻る, X→ゲーム終了", GRAY); } DrawCenterString(WINDOW_WIDTH/2, (int)(WINDOW_HEIGHT*2/5), "GAME CLEAR!", WHITE); timecount++; if (CheckHitKeyDown(KEY_INPUT_OK)){ SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); return true; }else if (CheckHitKeyDown(KEY_INPUT_CANCEL) || CheckHitKeyDown(KEY_INPUT_ESCAPE)){ SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); return false; } } WarningDx("Error->Unexpected matter happend[program_end]: GameClear()", __FILE__, __LINE__); return false; }
void CMain::StartDemo(){ int timecount = 0; int scene = 0; CheckHitKeyDown(KEY_INPUT_OK); //キー状態をリセット while( BasicLoop() && !CheckHitKeyDown(KEY_INPUT_ESCAPE) && !CheckHitKeyDown(KEY_INPUT_OK) && !CheckHitKeyDown(KEY_INPUT_CANCEL) && scene != -1){ switch(scene){ case 0: if (timecount<255) { SetDrawBlendMode(DX_BLENDMODE_ALPHA, timecount); }else if(timecount<255*2){ SetDrawBlendMode(DX_BLENDMODE_ALPHA, 255-(timecount-255)); }else if(timecount==255*2){ scene = -1; break; } DrawCenterString(WINDOW_WIDTH/2, (int)(WINDOW_HEIGHT*2/5), "Opening Demo", WHITE); DrawCenterString(WINDOW_WIDTH/2, (int)(WINDOW_HEIGHT*4/5), "Presented by MathLabo OBOG in IH", WHITE); break; } timecount++; } SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); };
int suken::DrawCenterString(int cx, int y, int color, bool centerY, const TCHAR* format, ...) { //フォーマット版 va_list args; char string[1024]; int for_return; va_start( args, format ); vsprintf_s( string, format, args ); va_end( args ); if(strlen(string)<1024){ for_return = DrawCenterString((int)cx,(int)y,string,color,centerY); }else{ for_return=-1; } return for_return; }