Esempio n. 1
0
//---------------------------------------------------------------------
// ● イベント処理コールバック
//---------------------------------------------------------------------
int SceneNetRoom::HandleEvent( u32 event_, void* args_ )
{
    switch ( event_ )
    {
        ///////////////////////////////////////////// SceneGame に移動する
        case SYSEV_GOTO_SCENEGAME:
        {
            printf( "げーむいどう\n" );
            LGameScene::changeScene( NEW SceneGame() );
            break;
        }
    }
    return 0;
}
Esempio n. 2
0
//=============================================================================
// 更新
//=============================================================================
void CCamera :: Update(void)
{
	if(CManager::GetSceneType()==PHASETYPE_GAME)
	{
		SceneGame();
	//	switch (m_CameraMode)
	//	{
	//		case RELEASE_MODE:
	//		{
	//			//目的の視点設定
	//			m_posCameraPDest.x = posModel.x - sinf(ErotModel.y) * 150;
	//			m_posCameraPDest.y = posModel.y + 75;
	//			m_posCameraPDest.z = posModel.z - cosf(ErotModel.y) * 200;

	//			//目的の注視点設定
	//			m_posCameraRDest.x = m_posPointView.x - sinf(rotModel.y) * 45;
	//			m_posCameraRDest.y = m_posPointView.y - 10;
	//			m_posCameraRDest.z = m_posPointView.z - cosf(rotModel.y) * 30;

	//#ifdef _DEBUG
	//			CDebugProc::Print("Distance:%f\n", Distance);
	//			CDebugProc::Print("posY:%f\n", posModel.y);
	//#endif
	//			if (Distance < 200.0f)
	//			{
	//				m_posCameraPDest.y = posModel.y + 75 + (100- Distance*0.5f);
	//				m_posCameraPDest.z = posModel.z - cosf(ErotModel.y) * (200 + (100 - Distance*0.5f));
	//				m_posCameraRDest.y =  EposModel.y - 10 + (120 - Distance);
	//			}

	//			float yset = posModel.y;
	//			if (yset > 50.0f){ yset = 50.0f; }

	//			m_posCameraP.x += (m_posCameraPDest.x - m_posCameraP.x)*(0.10f - (yset*0.0016f));
	//			if (m_posCameraPDest.y - posModel.y <= 110)
	//			{
	//				m_posCameraP.y += (m_posCameraPDest.y - m_posCameraP.y)*0.1f;
	//			}
	//			m_posCameraP.z += (m_posCameraPDest.z - m_posCameraP.z)*(0.10f - (yset*0.0016f));
	//			//現在の注視点に目的の注視点との差を足していく
	//			m_posCameraR.x += (m_posCameraRDest.x - m_posCameraR.x)*0.14f;
	//			if (m_posCameraRDest.y - posModel.y <= 110)
	//			{
	//				m_posCameraR.y += (m_posCameraRDest.y - m_posCameraR.y)*0.12f;
	//			}
	//			m_posCameraR.z += (m_posCameraRDest.z - m_posCameraR.z)*0.14f;

	//			break;

	//			m_posCameraP = D3DXVECTOR3(0.0f, 100.0f, 100.0f);
	//			m_posCameraR = D3DXVECTOR3(0.0f, 0.0f, 0.0f);

	//		}

	//		case GAMEEND_MODE:
	//				m_posCameraPDest.x = m_posPointView.x;
	//				m_posCameraPDest.y = m_posPointView.y + 100;
	//				m_posCameraPDest.z = m_posPointView.z + 300;

	//				//目的の注視点設定
	//				m_posCameraRDest.x = m_posPointView.x;
	//				m_posCameraRDest.y = m_posPointView.y - 10;
	//				m_posCameraRDest.z = m_posPointView.z;
	//				break;
	//		//現在未使用


	//		case SKILL_MODE:
	//					//目的の視点設定
	//					m_posCameraPDest.x= posModel.x;
	//					m_posCameraPDest.y= posModel.y+(130+(m_fCountSkillY));
	//					m_posCameraPDest.z= posModel.z+300-m_fCountSkillX;
	//				
	//					if(m_fCountSkillX<90)
	//					{
	//						if(m_fCountSkillY<250)
	//						{
	//							m_fCountSkillY+=1.0f;
	//						}else
	//						{
	//							m_fCountSkillY+=0.3f;
	//							m_fCountSkillX+=1.0f;
	//						}
	//					}else
	//					{
	//						m_CameraMode=RELEASE_MODE;

	//						posModel = pPlayerM->GetPos();
	//						rotModel = pPlayerM->GetRot();
	//						CCamera :: Init();

	//						//目的の視点設定
	//						m_posCameraPDest.x= posModel.x;
	//						m_posCameraPDest.y= posModel.y+75;
	//						m_posCameraPDest.z= posModel.z+150;
	//				
	//						//目的の注視点設定
	//						m_posCameraRDest.x= m_posPointView.x - sinf(rotModel.y)*45;
	//						m_posCameraRDest.y= m_posPointView.y -10;
	//						m_posCameraRDest.z= m_posPointView.z - cosf(rotModel.y)*30;
	//					}

	//					//目的の注視点設定
	//					m_posCameraRDest.x= posModel.x;
	//					m_posCameraRDest.y= posModel.y+(100+(m_fCountSkillY));
	//					m_posCameraRDest.z= posModel.z;

	//					//現在の視点に目的の視点との差を足していく
	//					m_posCameraP.x+=(m_posCameraPDest.x-m_posCameraP.x)*0.12f;
	//					m_posCameraP.y+=(m_posCameraPDest.y-m_posCameraP.y);
	//					m_posCameraP.z+=(m_posCameraPDest.z-m_posCameraP.z)*0.12f;

	//					//現在の注視点に目的の注視点との差を足していく
	//					m_posCameraR.x+=(m_posCameraRDest.x-m_posCameraR.x)*0.14f;
	//					m_posCameraR.y+=(m_posCameraRDest.y-m_posCameraR.y);
	//					m_posCameraR.z+=(m_posCameraRDest.z-m_posCameraR.z)*0.14f;
	//					break;

	//		case DEBUG_MODE:

	//					//カメラの移動
	//					if(pInputKeyboard->GetKeyPress(DIK_K))
	//					{
	//						m_posCameraP.x -= sinf(m_rotCamera.y)*CAMERA_MOVE_SPEED;
	//						m_posCameraP.z -= cosf(m_rotCamera.y)*CAMERA_MOVE_SPEED;
	//					}
	//					else if(pInputKeyboard->GetKeyPress(DIK_I))
	//					{
	//						m_posCameraP.x += sinf(m_rotCamera.y)*CAMERA_MOVE_SPEED;
	//						m_posCameraP.z += cosf(m_rotCamera.y)*CAMERA_MOVE_SPEED;
	//					}
	//					if(pInputKeyboard->GetKeyPress(DIK_J))
	//					{
	//						m_posCameraP.x -= sinf(m_rotCamera.y+90*(D3DX_PI/180))*CAMERA_MOVE_SPEED;
	//						m_posCameraP.z -= cosf(m_rotCamera.y+90*(D3DX_PI/180))*CAMERA_MOVE_SPEED;
	//					}
	//					else if(pInputKeyboard->GetKeyPress(DIK_L))
	//					{
	//						m_posCameraP.x += sinf(m_rotCamera.y+90*(D3DX_PI/180))*CAMERA_MOVE_SPEED;
	//						m_posCameraP.z += cosf(m_rotCamera.y+90*(D3DX_PI/180))*CAMERA_MOVE_SPEED;
	//					}

	//					//カメラの昇降
	//					if(pInputKeyboard->GetKeyPress(DIK_Y))
	//					{
	//						m_posCameraP.y +=2;
	//					}
	//					else if(pInputKeyboard->GetKeyPress(DIK_N))
	//					{
	//						m_posCameraP.y -=2;
	//					}

	//					//カメラの旋回
	//					if(pInputKeyboard->GetKeyPress(DIK_Z))
	//					{
	//						m_rotCamera.y +=D3DX_PI/180;
	//						m_posCameraP.x = m_posCameraR.x - sinf(m_rotCamera.y)*m_fVectCamera;
	//						m_posCameraP.z = m_posCameraR.z - cosf(m_rotCamera.y)*m_fVectCamera;
	//					}
	//					else if(pInputKeyboard->GetKeyPress(DIK_C))

	//					{
	//						m_rotCamera.y -=D3DX_PI/180;
	//						m_posCameraP.x = m_posCameraR.x - sinf(m_rotCamera.y)*m_fVectCamera;
	//						m_posCameraP.z = m_posCameraR.z - cosf(m_rotCamera.y)*m_fVectCamera;
	//					}

	//					//カメラの首ふり
	//					if(pInputKeyboard->GetKeyPress(DIK_Q))
	//					{
	//						m_rotCamera.y -= (D3DX_PI/180);
	//					}
	//					else if(pInputKeyboard->GetKeyPress(DIK_E))
	//					{
	//						m_rotCamera.y += (D3DX_PI/180);
	//					}
	//					if(pInputKeyboard->GetKeyPress(DIK_T))
	//					{
	//						m_rotCamera.x += (D3DX_PI/180);
	//					}
	//					else if(pInputKeyboard->GetKeyPress(DIK_B))
	//					{
	//						m_rotCamera.x -= (D3DX_PI/180);
	//					}
	//					if(pInputKeyboard->GetKeyPress(DIK_0))
	//					{
	//						m_posCameraP = D3DXVECTOR3(0.0f,50.0f,-130.0f);
	//						m_posCameraR = D3DXVECTOR3(0.0f,0.0f,0.0f);
	//						m_posCameraU = D3DXVECTOR3(0.0f,1.0f,0.0f);
	//					}
	//					break;
	//	}

	//	//カメラのモードの切り替え
	//	if(pInputKeyboard->GetKeyTrigger(DIK_F12))
	//	{
	//		if(m_CameraMode==DEBUG_MODE)
	//		{
	//			m_CameraMode=RELEASE_MODE;

	//			posModel = pPlayerM->GetPos();
	//			rotModel = pPlayerM->GetRot();
	//			CCamera :: Init();

	//			//目的の視点設定
	//			m_posCameraPDest.x= posModel.x;
	//			m_posCameraPDest.y= posModel.y+75;
	//			m_posCameraPDest.z= posModel.z+150;
	//				
	//			//目的の注視点設定
	//			m_posCameraRDest.x= m_posPointView.x - sinf(rotModel.y)*45;
	//			m_posCameraRDest.y= m_posPointView.y -10;
	//			m_posCameraRDest.z= m_posPointView.z - cosf(rotModel.y)*30;

	//		}else
	//		{
	//			m_CameraMode=DEBUG_MODE;
	//		}
	//	}

		////カメラのモードの切り替え
		//if((pInputKeyboard->GetKeyTrigger(DIK_F10))||(pInputKeyboard->GetKeyTrigger(DIK_F)))
		////if(pInputKeyboard->GetKeyTrigger(DIK_F10))
		//{
		//	if(m_CameraMode==SKILL_MODE)
		//	{
		//		m_CameraMode=RELEASE_MODE;

		//		posModel = pPlayerM->GetPos();
		//		rotModel = pPlayerM->GetRot();
		//		CCamera :: Init();

		//		//目的の視点設定
		//		m_posCameraPDest.x= posModel.x;
		//		m_posCameraPDest.y= posModel.y+75;
		//		m_posCameraPDest.z= posModel.z+150;
		//			
		//		//目的の注視点設定
		//		m_posCameraRDest.x= m_posPointView.x - sinf(rotModel.y)*45;
		//		m_posCameraRDest.y= m_posPointView.y -10;
		//		m_posCameraRDest.z= m_posPointView.z - cosf(rotModel.y)*30;
		//	}else
		//	{
		//		m_CameraMode=SKILL_MODE;
		//		m_fCountSkillY=0;
		//		m_fCountSkillX=0;
		//	}
		//}


		//カメラ向き変更
		//m_rotCamera.y = atan2f((m_posCameraR.x-m_posCameraP.x),(m_posCameraR.z-m_posCameraP.z));
		//m_rotCamera.x = atan2f((m_posCameraR.z-m_posCameraP.z),(m_posCameraR.y-m_posCameraP.y));
	}

}
Esempio n. 3
0
//---------------------------------------------------------------------
// ● フレーム更新
//---------------------------------------------------------------------
void SceneTitle::onUpdate()
{
	mRandomSprite->SetSrcRect(mFrameCount, mFrameCount, 512, 64);

	mPointCursor->update();

	// 終了中?
	if (mEndFrameCount > 0)
	{
		--mEndFrameCount;

		// 字幕のフェードアウト
		int t = MAX_END_FRAME_COUNT - mEndFrameCount;
		mSuperSprite[0]->SetPosition(0, -t * 4);
		mSuperSprite[1]->SetPosition(0, 448 + t * 6);

		// ウィンドウ・コマンドのフェードアウト
		t = mEndFrameCount - (MAX_END_FRAME_COUNT - 20);
		mCommandFadeInOpacity.SetTime(t);

		mDescWindowSprite->SetOpacity(mCommandFadeInOpacity.GetValue());
		mDescContentsSprite->SetOpacity(mCommandFadeInOpacity.GetValue());

		// 拡大エフェクト
		float op = std::min(MAX_END_FRAME_COUNT - mEndFrameCount, 20);
		mTitleEffectSprite->SetOpacity(1.0f - op / 20);
		mTitleEffectSprite->SetScale(op / 100 + 1);

		for (int i = 0; i < 4; ++i)
		{
			mCommandSprite[i]->SetOpacity(mCommandFadeInOpacity.GetValue());
		}

		// 全体フェードアウト
		if (mEndFrameCount == 60)
		{
			Accessor::ToneLayer->ChangeTone(ToneF(1, 1, 1, 0), 1.0);
		}


		if (mEndFrameCount == 0)
		{
			// 親として初期化した後、ゲーム画面に移動する
			GameManager::getInstance()->initializeParent();
			GameManager::getInstance()->setRank(mSelectIndex);
			LGameScene::changeScene(NEW SceneGame());
		}


	}


	switch (mStep)
	{
		/////////////////////// Press Any Key
		case 0:
		{
			mRoundTripValue.SetTime((double)mFrameCount);

			mPressAnyKeySprite->SetOpacity(mRoundTripValue.GetValue());


			if (Input::IsTriggered(InputButtons::Any))
			{
				mStep = 1;
				mFrameCount = 0;
				mEntryedStep = 1;
				_startShowCommand(0);

				mSelectIndex = 0;

				mWindowFadeCount = 40;

				GameAudio::PlaySE("Data/Sound/SE/cursor21.wav", 0.40, 1.00);
			}

			break;
		}
		/////////////////////// モード選択
		case 1:
		{
			if (mFrameCount == 20 && mWindowFadeCount > 10) // mWindowFadeCount > 30 は、step1 0 から来たという意味
			{
				_setPointCursorIndex(mSelectIndex);
			}
			if (mFrameCount >= 20 && mFrameCount <= 60)
			{
				int t = mFrameCount - 20;
				for (int i = 0; i < 3; ++i)
				{
					mCommandFadeInX.SetTime(static_cast< double >(t - 5 * i));
					mCommandSprite[i]->SetPosition(COMMAND_POS_X + mCommandFadeInX.GetValue(), COMMAND_POS_Y + 32 * i);

					mCommandFadeInOpacity.SetTime(static_cast< double >(t - 5 * i));
					mCommandSprite[i]->SetOpacity(mCommandFadeInOpacity.GetValue());
				}
			}

			// 決定ボタン
			if (Input::IsTriggered(LN_BUTTON_A))
			{
				switch (mSelectIndex)
				{
				case 0:
					mSelectIndex = 1;
					break;
				case 1:
					// ランキング
					this->callScene(LN_NEW SceneRanking());
					GameAudio::PlaySE(CURSOR_SE, 0.80);
					return;
				case 2:
					// 終了
					Engine::Exit();
					break;
				}

				mStep = 2;
				mFrameCount = 0;
				_startShowCommand(1);

				_setPointCursorIndex(mSelectIndex);
				GameAudio::PlaySE(CURSOR_SE, 0.80);
				return;
			}

			// ↑
			if (Input::IsRepeated(LN_BUTTON_UP))
			{
				--mSelectIndex;
				if (mSelectIndex < 0)
				{
					mSelectIndex = 2;
				}
				_setPointCursorIndex(mSelectIndex);
				GameAudio::PlaySE(CURSOR_SE, 0.80);
				return;
			}
			// ↓
			if (Input::IsRepeated(LN_BUTTON_DOWN))
			{
				++mSelectIndex;
				if (mSelectIndex > 2)
				{
					mSelectIndex = 0;
				}
				_setPointCursorIndex(mSelectIndex);
				GameAudio::PlaySE(CURSOR_SE, 0.80);
				return;
			}


			break;
		}

		/////////////////////// 難易度選択
		case 2:
		{
			if (mFrameCount <= 50)
			{
				for (int i = 0; i < 4; ++i)
				{
					mCommandFadeInX.SetTime(static_cast< double >(mFrameCount - 5 * i));
					mCommandSprite[i]->SetPosition(COMMAND_POS_X + mCommandFadeInX.GetValue(), COMMAND_POS_Y + 32 * i);

					mCommandFadeInOpacity.SetTime(static_cast< double >(mFrameCount - 5 * i));
					mCommandSprite[i]->SetOpacity(mCommandFadeInOpacity.GetValue());
				}
			}

			// 決定
			if (Input::IsTriggered(LN_BUTTON_A))
			{

				// 終了
				mEndFrameCount = MAX_END_FRAME_COUNT;

				mPointCursor->moveToInit();

				GameAudio::PlaySE("Data/Sound/SE/cursor21.wav", 0.80, 1.20);
				GameAudio::StopBGM(3.0);

				// iss#1 ダミーのステップへ移行して繰り返し決定ボタン押せないようにする
				mStep = 4;
			}

			// キャンセル
			if (Input::IsTriggered(LN_BUTTON_B))
			{
				mStep = 1;
				mFrameCount = 0;
				_startShowCommand(0);
				mSelectIndex = 0;
				_setPointCursorIndex(mSelectIndex);
			}

			// ↑
			if (Input::IsRepeated(LN_BUTTON_UP))
			{
				--mSelectIndex;
				if (mSelectIndex < 0)
				{
					mSelectIndex = 3;
				}
				_setPointCursorIndex(mSelectIndex);
				GameAudio::PlaySE(CURSOR_SE, 0.80);
			}
			// ↓
			if (Input::IsRepeated(LN_BUTTON_DOWN))
			{
				++mSelectIndex;
				if (mSelectIndex > 3)
				{
					mSelectIndex = 0;
				}
				_setPointCursorIndex(mSelectIndex);
				GameAudio::PlaySE(CURSOR_SE, 0.80);
			}
			break;
		}
	};



	if (mEntryedStep == 1)
	{
		if (mPressAnyKeySprite->IsVisible() && mFrameCount <= 10)
		{
			mPressAnyKeySprite->SetScale(mFrameCount / 4.0f + 1.0f, (10.0f - mFrameCount) / 10.0f);
			if (mFrameCount == 10)
			{
				mPressAnyKeySprite->SetVisible(false);
				mEntryedStep = 2;
			}
		}

		if (mFrameCount <= 8)
		{
			mSuperSprite[0]->SetVisible(true);
			mSuperSprite[1]->SetVisible(true);
			mSuperSprite[0]->SetPosition(0, -32.0f + (float)mFrameCount * 4);
			mSuperSprite[1]->SetPosition(0, 480.0f - (float)mFrameCount * 4);
		}
	}

	// ウィンドウのフェードイン中
	if (mWindowFadeCount > 0)
	{
		--mWindowFadeCount;

		if (mWindowFadeCount <= 30)
		{
			double t = static_cast< double >(30 - mWindowFadeCount);

			// コマンド用のアニメを使いまわす
			mCommandFadeInX.SetTime(t);
			mCommandFadeInOpacity.SetTime(t);

			mDescWindowSprite->SetPosition(60 - mCommandFadeInX.GetValue(), 280);
			mDescWindowSprite->SetOpacity(mCommandFadeInOpacity.GetValue());

			mDescContentsSprite->SetPosition(60 - mCommandFadeInX.GetValue(), 280);
			mDescContentsSprite->SetOpacity(mCommandFadeInOpacity.GetValue());
		}
	}


	// 説明文描画中
	if (!mFormatText.isFinished())
	{
		mFormatText.update();

		LNFormatTextDrawData data;
		while (mFormatText.getNextDrawData(&data))
		{
			mDescContents->DrawText(StringRef(data.Text, data.Length), data.Rect, data.Font, Color32::Black, Color32::White, 0, TextAlignment::Left);
		}
	}

	/*
	if ( Input.isOnTrigger( LN_BUTTON_A ) )
	{
	// 親として初期化した後、ゲーム画面に移動する
	GameManager::getInstance()->initializeParent();

	LGameScene::changeScene( NEW SceneGame() );
	return;
	}


	if ( Input.isOnTrigger( LN_BUTTON_B ) )
	{
	LGameScene::changeScene( NEW SceneConnection() );
	return;
	}
	*/

	

	++mFrameCount;
}