//============================================================================== // Brief : 要素の生成処理 // Return : int : 登録ID // Arg : int type : 種類 // Arg : int priorityUpdate : 更新優先度 // Arg : int priorityDraw : 描画優先度 //============================================================================== int CManagerObjectImage::Create( int type, int priorityUpdate, int priorityDraw ) { // 種類ごとの処理 CTexture* pTexture = nullptr; switch( type ) { // タイトル・ロゴ case TYPE_TITLE_LOGO: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "title/title_logo.png" ) ) ); break; // タイトル・プレスキー case TYPE_TITLE_PRESS_KEY: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "title/PressStart.png" ) ) ); break; // タイトル・ゲームスタート case TYPE_TITLE_GAME_START: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "title/GameStart.png" ) ) ); break; // タイトル・チュートリアル case TYPE_TITLE_GAME_TUTORIAL: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "title/Tutorial.png" ) ) ); break; // タイトル・ランキング case TYPE_TITLE_GAME_RANKING: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "title/Ranking.png" ) ) ); break; // タイトル・設定 case TYPE_TITLE_GAME_OPTION: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "title/Option.png" ) ) ); break; // タイトル・終了 case TYPE_TITLE_GAME_EXIT: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "title/Exit.png" ) ) ); break; // リザルト・ロゴ case TYPE_RESULT_LOGO: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "result/Result.png" ) ) ); break; // ポーズ・ロゴ case TYPE_PAUSE_LOGO: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "game/PauseLogo.png" ) ) ); break; // ポーズ・メニュー case TYPE_PAUSE_MENU: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "game/PauseMenu.png" ) ) ); break; // ポーズ・カーソル case TYPE_PAUSE_CURSOR: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "game/pause_arrow.png" ) ) ); break; // NAGASAKI追加 // 丸いエフェクト case TYPE_EFFECT: pTexture = m_pTexture->Get( m_pTexture->Load( _T( "game/effect.jpg" ) ) ); break; // その他 default: break; } // オブジェクトの生成 CObjectImage* pObject = nullptr; pObject = new CObjectImage(); if( pObject == nullptr ) { ThrowExceptionBadAllocation(); } pObject->SetSize( pTexture->m_width, pTexture->m_height ); // ステートテーブルの設定 pObject->SetStateTable( m_ppTableState ); // 種類ごとの処理 switch( type ) { // ポーズカーソル case TYPE_PAUSE_CURSOR: pObject->ShiftState( CObjectImage::STATE_CURSOR ); break; // その他 default: pObject->ShiftState( CObjectImage::STATE_NONE ); break; } // 描画オブジェクトの生成 CGraphicSet2D* pGraphic = nullptr; pGraphic = new CGraphicSet2D( 1, m_pRenderMatrix, m_pDraw->GetGraphicDevice(), m_pPolygon, pTexture ); if( pGraphic == nullptr ) { ThrowExceptionBadAllocation(); } pGraphic->SetRenderParameter( 0, m_pRenderParameterPolygon ); pObject->SetGraphic( pGraphic ); // 更新リストへ登録 pObject->SetIdUpdate( m_pUpdate->RegisterItem( pObject, priorityUpdate ) ); // 描画リストへ登録 pObject->SetIdDraw( m_pDraw->RegisterItem( pGraphic, priorityDraw ) ); // 要素の登録 int idRegister = m_idCurrent; // 返却ID m_pImage->Register( m_idCurrent, type, pObject, pGraphic ); ++m_idCurrent; return idRegister; }