//----------------------------------------------------------------------------- // 背景初期化 //----------------------------------------------------------------------------- void CResult::InitializeBG(void){ // 背景 m_pBG = CScene2D::Create(m_pD3DDevice, D3DXVECTOR3(SCREEN_WIDTH * 0.5f, SCREEN_HEIGHT * 0.5f, 0), static_cast<float>(SCREEN_WIDTH), static_cast<float>(SCREEN_HEIGHT), TEXTURE_BG_RESULT, TYPE_PRIORITY_BG); // キャラ選択っていうロゴ表示 m_pLogo = CScene2D::Create(m_pD3DDevice, RESULT_LOGO_POS, RESULT_LOGO_SIZE.x, RESULT_LOGO_SIZE.y, TEXTURE_RESULT_LOGO, TYPE_PRIORITY_GOAL); // くるくるライトの作成 for (int i = 0; i < RESULT_CIRCLE_LIGHT_MAX; i++){ // サイズ決定 float size = mersenne_twister_float(RESULT_CIRCLE_LIGHT_SIZE_MIN, RESULT_CIRCLE_LIGHT_SIZE_MAX); m_pCircleLight[i] = CScene2D::Create(m_pD3DDevice, D3DXVECTOR3(SCREEN_WIDTH * 0.5f, SCREEN_HEIGHT * 0.5f, 0), size, size, TEXTURE_RESULT_CIRCLE_LIGHT, TYPE_PRIORITY_EFFECT); // 当たり判定用に半分の大きさを保存 m_vCircleSizeHalf[i] = size * 0.5f; // 移動量決定 m_vCircleVelo[i].x = mersenne_twister_float(RESULT_CIRCLE_LIGHT_VELO_MIN, RESULT_CIRCLE_LIGHT_VELO_MAX); m_vCircleVelo[i].y = mersenne_twister_float(RESULT_CIRCLE_LIGHT_VELO_MIN, RESULT_CIRCLE_LIGHT_VELO_MAX); // 遅すぎる奴をなくす (m_vCircleVelo[i].x < 0) ? m_vCircleVelo[i].x -= 1.0f : m_vCircleVelo[i].x += 1.0f; (m_vCircleVelo[i].y < 0) ? m_vCircleVelo[i].y -= 1.0f : m_vCircleVelo[i].y += 1.0f; // 色を付ける m_pCircleLight[i]->SetColorPolygon( PLAYER_COLOR[m_nWinPlayerNum] + D3DXCOLOR( mersenne_twister_float(0.2f, 0.7f), mersenne_twister_float(0.2f, 0.7f), mersenne_twister_float(0.2f, 0.7f), mersenne_twister_float(0.2f, 0.7f))); } // このさき引き分けならいらない if (m_nWinPlayerNum == -1){ return; } // 勝者に当てるライト m_pLight = CScene2D::Create(m_pD3DDevice, RESULT_LIGHT_POS[m_nWinPlayerNum], RESULT_LIGHT_SIZE.x, RESULT_LIGHT_SIZE.y, TEXTURE_RESULT_LIGHT, TYPE_PRIORITY_FIELD); }
//============================================================================= // 初期化 //============================================================================= void CJumpEffectBillbord::Init(D3DXVECTOR3& pos, TEXTURE_TYPE texType) { m_Pos3D = pos; // 横の移動量をランダムで決める m_Velo = mersenne_twister_float(-VELO_MAX, VELO_MAX); // 3Dの座標を2Dに変換 m_Pos2D = D3DXVECTOR3(0, 0, 0); D3DXMATRIX proj = m_pCameraManager->GetMtxProj(); D3DXMATRIX view = m_pCameraManager->GetMtxView(); D3DXVec3TransformCoord(&m_Pos2D, &m_Pos3D, &view); D3DXVec3TransformCoord(&m_Pos2D, &m_Pos2D, &proj); D3DXVec3TransformCoord(&m_Pos2D, &m_Pos2D, &VIEW_PORT); // 一旦3Dから2Dに変換する CScene2D::Init(m_Pos2D, JUMP_EFFECT_SIZE, JUMP_EFFECT_SIZE, texType); // アルファ値を適用 this->SetColorPolygon(m_Color); // 最終的に飛ぶ先の座標を計算しておく m_isCrowd = (texType != TEXTURE_JUMP_EFFECT_HP); }