Esempio n. 1
0
void CConversation::GoToScene (unsigned int SceneNr)
{
	// go to a specific scene

	// the test if this is a valid scene is done by the ChangeScene-function
	ChangeScene (SceneNr);
}
Esempio n. 2
0
void CSceneTitle::FrameMove(CSceneManager* pManager, float et)
{
	if( (GetInput().KEY(DIK_UP)) )		  // 위
	{
		GetSound().PlaySound2D("Sound/MBtMouseClick.mp3",false);
		if( m_nCurrentSelect == START ) m_nCurrentSelect = END;
		else m_nCurrentSelect--;
	} 
	else if( (GetInput().KEY(DIK_DOWN)) ) // 아래
	{
		GetSound().PlaySound2D("Sound/MBtMouseClick.mp3",false);
		if( m_nCurrentSelect == END ) m_nCurrentSelect = START;
		else m_nCurrentSelect++;
	} 
	else if(GetInput().KEY(DIK_RETURN))	  // 엔터키
	{
		GetSound().PlaySound2D("Sound/WorldSelect.mp3",false);
		// 게임 시작
		if(m_nCurrentSelect == START){
			GetSound().StopAllSound2D();
			ChangeScene(pManager,CSceneCharacter::GetSingleton());
		}
		// 이어 하기
		if(m_nCurrentSelect == CONTINUE){
			printf("Not implemented yet : Continue\n");
		}
		// 게임 종료
		if(m_nCurrentSelect == END){
			PostMessage(g_pApp->GethWnd(), WM_DESTROY, 0,0);
		}
	}
}
Esempio n. 3
0
void GameLogic::OnTick() {
	switch( m_ActiveGameMode ) {
		case GAME_LOGIC_MODE_PLAYING:
			Instance.SceneManager->OnTick();
			Instance.InputHandler->UpdateRelativeMouse();
			break;

		case GAME_LOGIC_MODE_TEST:
			ChangeScene( "Scenes/Dev/Test_Sandbox.its", GAME_LOGIC_MODE_PLAYING );
			break;

		case GAME_LOGIC_MODE_TRANSITION:
			ChangeMode( m_NextGameMode );
			m_NextGameMode = GAME_LOGIC_MODE_NONE;
			break;

		case GAME_LOGIC_MODE_EDITOR:
			Instance.SceneManager->OnTick();
			Instance.InputHandler->UpdateMouse();
			EditorMouseUpdate();
			break;

		case GAME_LOGIC_MODE_UNKNOWN:
		case GAME_LOGIC_MODE_NONE:
		default:
			break;
	}
}
Esempio n. 4
0
//=============================================================================
//フェードイン
//=============================================================================
void CScene::FadeIn( )
{
	static Sint32 Alphacount = 0;
	
	static Sint32 Alpha	= 255;
	
	Alphacount++;
	
	Alpha = Interpolation::Flat(255, 0, toI(m_fFadeTime), Alphacount);

	m_pApp->GetRenderer()->SetDrawType( DRAW_TYPE_BLEND );
	
	m_pApp->GetRenderer()->FillRect( Math::Rect2DF( 0, 0, toF( m_pApp->GetScreenWidth() ),toF(  m_pApp->GetScreenHeight() ) ), CColor( 255, 255, 255, Alpha ) );
	
	if( Alpha <= 0 )
	{
		Alpha = 255;
		Alphacount = 0;
		
		ChangeScene( m_eNextScene );
		
		m_eSceneState = STATE_STANDBY;
		
		//pScene->Get2DObject()->RemoveObject( pTitle );
	}
	
}
Esempio n. 5
0
// ---------------------------------------------------------------------------
/// 更新
// ---------------------------------------------------------------------------
Scene::SCENE Title::Update() {
    Scene::Update();

    // スタート表示の点滅
    if(mFadeFlag) {
        mStartTex.setAlpha(mStartTex.getAlpha() - mFadeSpeed);
        if(mStartTex.getAlpha() <= 0.0f) mFadeFlag = false;
    }
    else {
        mStartTex.setAlpha(mStartTex.getAlpha() + mFadeSpeed);
        if(mStartTex.getAlpha() >= 1.0f) mFadeFlag = true;
    }

    // スタート
    if(!mStart && mMouse.IsClickLeftButton()) {
        mStartSE.PlaySE();
        mStart = true;
        mStartTex.setAlpha(1.0f);
        mFadeSpeed = 0.1f;
        FadeOut(2.0f);
    }

    // ゲームメインへ
    if(mFadeOutComp) {
        ChangeScene(SCENE::GAMEMAIN_SCENE);
    }

    return mScene;
}
Esempio n. 6
0
//=============================================================================
//フェードアウト
//=============================================================================
void CScene::FadeOut( )
{
	static Sint32 Alphacount = 0;
	
	static Sint32 Alpha	= 0;
	
	Alphacount++;
	
	Alpha = Interpolation::Flat(0, 255, toI(m_fFadeTime), Alphacount);

	m_pApp->GetRenderer()->SetDrawType( DRAW_TYPE_BLEND );
	
	m_pApp->GetRenderer()->FillRect( Math::Rect2DF( 0, 0, toF( m_pApp->GetScreenWidth() ),toF(  m_pApp->GetScreenHeight() ) ), CColor( 0, 0, 0, Alpha ) );
	
	if( Alpha >= 255 )
	{
		Alpha = 0;
		Alphacount = 0;

		ChangeScene( m_eNextScene );
		
		m_pApp->GetRenderer()->SetDrawTextFont("MS ゴシック", m_FontSize );		
		
		m_eSceneState = STATE_STANDBY;
	}
	
	
	
}
Esempio n. 7
0
void CSceneManager::Render()
{
	m_pCurScene->Render();
	if(m_pCurScene->GetChange())
	{
		ChangeScene();
	}
}
Esempio n. 8
0
SceneManager::SceneManager(){
	SceneMediateData startupSceneData = SceneMediateData::Setup(SCENE_TITLE);

	sceneMap.insert(map<SceneName, IScenes*>::value_type(SCENE_TITLE	, new SceneTitle()));
	sceneMap.insert(map<SceneName, IScenes*>::value_type(SCENE_GAMEMAIN	, new SceneGameMain()));

	sceneMap[startupSceneData.nextScene]->Initialize(startupSceneData);
	ChangeScene(startupSceneData);
}
void SceneManager::Init( void )
{
	TRACE( "SceneManager initialisation" );
	
	//TODO: Determine default starting scene then initialise
	//With new SceneList implementation, this can be read from a settings file as a string
	ChangeScene( "TestScene" );

	PushGUI( new MainMenu( system, "Main Menu" ) );
}
Esempio n. 10
0
bool CClientRobot::OnLostSever()
{
    m_bWaitReonnect = true ;
    m_fReconnectTick = TIME_FOR_RECONNECT ;

    printf("lost server connect , change to login scene\n") ;
    auto au = new CLoginScene(this);
    ChangeScene(au);
    return true ;
}
Esempio n. 11
0
void Run(FScene* StartingScene)
{
	ChangeScene(StartingScene);

	float DeltaTime = 0.0f;

	FTimer* Timer = EngineModules.Timer;
	Timer->Start();
	while (EngineModules.Window->HandleEvents())
	{
		Timer->Restart();
		DeltaTime = Timer->GetElapsedTimeSeconds();

		FProfiler::Get().PushSection("Engine", "Update");
		EngineModules.ImGui->Update(DeltaTime);
		if (EngineModules.CurrentScene != nullptr)
		{
			EngineModules.CurrentScene->Update(DeltaTime);
			FProfiler::Get().PopSection();
			EngineModules.CurrentScene->Render(DeltaTime);
		}
		else
		{
			FProfiler::Get().PopSection();
		}

		EngineModules.ImGui->Render();
		EngineModules.GraphicsContext->SwapBuffers();

		if (EngineModules.NextScene != nullptr)
		{
			if (EngineModules.CurrentScene != nullptr)
			{
				EngineModules.CurrentScene->Unload();
				delete EngineModules.CurrentScene;
			}

			EngineModules.CurrentScene = EngineModules.NextScene;
			EngineModules.CurrentScene->Load();

			EngineModules.NextScene = nullptr;
		}

		EngineModules.Input->SignalFrameEnded();
		FProfiler::Get().OnFrameEnded();
	}

	if (EngineModules.CurrentScene != nullptr)
	{
		EngineModules.CurrentScene->Unload();
		delete EngineModules.CurrentScene;
		EngineModules.CurrentScene = nullptr;
	}
}
void TerrainViewer::Client::Start()
{
   Init(800, 600, false);

   ChangeScene(std::shared_ptr<Scene>(
      new TerrainViewer::MainScene(
         *this,
         GetGraphicsTaskManager(),
         GetRenderEngine(),
         GetKeyboardActionManager())));

   Run();
}
Esempio n. 13
0
void CSceneManager::InitializeScene()
{
	Add(new CTitleScene("Title"));
	//Add(new CSelectScene("Select"));
	Add(new CGameScene("Game"));
	Add(new CResultScene("Result"));
	ChangeScene(SCENE::TITLE);

	if (m_nowScene == -1){
		//シーンを作ってね
		std::abort();
	}
}
Esempio n. 14
0
void CSceneManager::TransitionScene()
{
	// キー操作制限
	LockKey();
	// フェードアウト開始
	// 次のシーンがセットされていて、なおかつフェードアウトが完了していれば、シーン入れ替え関数を呼ぶ
	if(NextScene != NULL && CTransition::FadeOut()) ChangeScene();
	// フェードイン開始
	// フェードインが完了したら、トランジションを解放する
	if(NULL == NextScene && CTransition::FadeIn()){
		CTransition::DestroyTransition();
		UnLockKey();
		UnPause_();
	}
}
Esempio n. 15
0
void CConversation::PrevScene ()
{
	bool ChangedTheScene = false;
	unsigned int  Scene = m_CurScene;

	while (ChangedTheScene == false)
	{
		Scene--;

		// test if this would be a valid scene
		if (Scene >= 0)
			ChangedTheScene = ChangeScene (Scene); // valid so try to change it
		else
			ChangedTheScene = true; // not valid, so change nothing but get out of the while
	}
}
Esempio n. 16
0
void CConversation::NextScene ()
{
	bool ChangedTheScene = false;
	unsigned int  Scene = m_CurScene;

	while (ChangedTheScene == false)
	{
		Scene++;

		// test if this would be a valid scene
		if (Scene < m_Scenes.size () )
			ChangedTheScene = ChangeScene (Scene); // is valid, so try to change it
		else
			ChangedTheScene = true; // not valid, so change nothing but get out of the while
	}
}
Esempio n. 17
0
void TinselEngine::NextGameCycle(void) {
	// Dim Music
	_pcmMusic->dimIteration();

	// Check for scene change
	ChangeScene(false);

	// Allow a user event for this schedule
	ResetEcount();

	// schedule process
	_scheduler->schedule();

	if (MoviePlaying())
		CopyMovieToScreen();
	else
		// redraw background
		DrawBackgnd();

	// Why waste resources on yet another process?
	FettleTimers();
}
Esempio n. 18
0
void SceneManager::Update(){
	SceneMediateData nextSceneData;
	nextSceneData = sceneMap[curScene]->Update();
	ChangeScene(nextSceneData);
}
Esempio n. 19
0
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	SetWindowIconID(IDI_ICON1);
	SetMainWindowText(titlebar),ChangeWindowMode(TRUE), SetGraphMode(WIDTH, HEIGHT, 32),
		DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK);
	//ウィンドウモード、960*720のサイズ

	//画像の読み込み
	GraphicHandle[0] = LoadGraph("image/Title.png");
	GraphicHandle[1] = LoadGraph("image/Player.png");
	GraphicHandle[2] = LoadGraph("image/Comet.png");
	GraphicHandle[3] = LoadGraph("image/Backscreen.png");
	GraphicHandle[4] = LoadGraph("image/Clearscreen.png");
	GraphicHandle[5] = LoadGraph("image/Sf_title.png");
	GraphicHandle[6] = LoadGraph("image/Buttun_on.png");
	GraphicHandle[7] = LoadGraph("image/Buttun_off.png");
	GraphicHandle[8] = LoadGraph("image/Ready.png");
	GraphicHandle[9] = LoadGraph("image/Start.png");
	GraphicHandle[10] = MakeScreen(1024, 1024, false);
	GraphicHandle[11] = LoadGraph("image/Ranking.png");
	GraphicHandle[12] = LoadGraph("image/Pause.png");

	//音楽の読み込み
	SoundHandle[0] = LoadSoundMem("music/bgm.mp3");
	SoundHandle[1] = LoadSoundMem("music/select.mp3");
	SoundHandle[2] = LoadSoundMem("music/deside.mp3");
	SoundHandle[3] = LoadSoundMem("music/miss.mp3");
	SoundHandle[4] = LoadSoundMem("music/gameover.mp3");

	GScoreFont = CreateFontToHandle("Meiryo UI Bold", 20, -1);
	RScoreFont = CreateFontToHandle("Meiryo UI Bold", 32, -1);
	CScoreFont = CreateFontToHandle("Meiryo UI Bold", 64, -1);
	ChangeFont("Meiryo UI Bold"); //フォントの変更

	Title_Initialize();		//タイトルの初期化処理
	Game_Initialize();		//ゲームの初期化処理
	Clear_Initialize();		//クリア画面の初期化処理
	Rank_Initialize();		//ランキング画面の初期化処理
	Logo_Initialize();

	while (Loop() == true)
	{
		Keyboard_Update();
		GamePad_Update();

		switch (NowScene())
		{	//現在のシーンによって動作を変える
		case logo:
			Logo_Update();
			break;

		case title:
			Title_Update();
			Title_Draw();
			break;

		case gamepre:
			Game_Initialize();
			ChangeScene(game);

		case game:
			Game_Update();
			Game_Draw();
			break;

		case clear:
			Clear_Update();
			Clear_Draw();
			break;

		}
	}

	Title_Finalize();		//タイトルの終了処理
	Game_Finalize();		//ゲームの終了処理
	Clear_Finalize();		//クリア画面の終了処理
	Rank_Finalize();		//ランキング画面の終了処理
	Logo_Finalize();		//ロゴ画面の終了処理

	DxLib_End();				// DXライブラリ使用の終了処理
	return 0;
}
Esempio n. 20
0
void SceneManager::Setup()
{
	Register();

	ChangeScene(Scene::STAGE_SELECT);
}
Esempio n. 21
0
void Room5::Update()
{
	if (!textWindow->getActive() && !gameOverSw) {
		player->playerInput(input, Map);
	}
	cursor->CursorInput(input);

	// 페이드 인 아웃 //
	if (fade->getalphaStart()) {
		player->setInputSW(false);
		fade->setAlpha(fade->getAlpha() + 0.8f);
	}
	else if (fade->getAlpha() <= 255 && fade->getAlpha() >= 1.5f) {
		player->setInputSW(false);
		fade->setAlpha(fade->getAlpha() - 1.5f);
	}
	else if (fade->getAlpha() <= 1.5f) {
		player->setInputSW(true);
		start = true;
	}

	if (fade->getAlpha() >= 254) {
		Game *temp = new Room3;
		ChangeScene(temp);
		
	}
	///////////////////

	//// 기본 시스템 ////
	{
		if (start && LantenAlpha <= 240) {
			LantenAlpha += Dark;
		}
		else if (start && LantenAlpha > 240 && LantenAlpha <= 250) {
			LantenAlpha += 0.015f;
		}
		else if (LantenAlpha > 250) {
			gameOverSw = true;
		}

		if (gameOverSw && gameOverAl <= 254) {
			gameOverAl += 254;
		}
	}
	/////////////////////


	////// 이벤트 발동문 //////
	{
		// 몬스터 추적
		if (monsterStart == 1) {
			HuntPlayer(mop1);
			MonsterTime += (float)1 / 60;
		}

		if (monsterStart2) {
			HuntPlayer(mop2);
			HuntPlayer(mop3);
			HuntPlayer(mop4);
			HuntPlayer(mop5);

			MonsterTime2 += (float)1 / 60;
		}

		if (monsterStart3 == 2) {
			HuntPlayer(mop6);
			HuntPlayer(mop7);
			HuntPlayer(mop8);
			HuntPlayer(mop9);

			MonsterTime3 += (float)1 / 60;
		}
	}
	
	{
		if (monsterStart3 == 1) {
			MonsterStartTime += (float)1 / 60;
		}
		else if (monsterStart3 == 1) {
			MonsterStartTime += (float)1 / 60;
		}

		// 몬스터 실종 시간
		if (MonsterTime >= 50) {
			if(MonsterTime >= 60) {
				monsterStart = 2;
			}
			MonsterAlpha1 -= 25;
		}

		if (MonsterTime2 >= 45) {
			monsterStart2 = 2;
			MonsterAlpha2 -= 25;
		}

		if (MonsterTime3 >= 40) {
			monsterStart3 = 3;
			MonsterAlpha3 -= 25;
		}

		if (MonsterStartTime >= 10 && monsterStart3 != 3) {
			monsterStart3 = 2;
		}

		if (ShadowEventStart == 1) {
			shadows->setX(player->getX());
		}

		if (TotemEvent == 1) {
			Sleep(2000);
			Totem1->settingTexture(graphics, "..\\Resources\\Object\\totem_l_N.png", 64 * 3, 64 * 7, 1);
			Totem2->settingTexture(graphics, "..\\Resources\\Object\\totem_r_N.png", 64 * 3, 64 * 7, 1);
			TotemEvent = 2;
		}
	}
	
	///////////////////////////

	////// 이벤트 리스트 //////

	// 대화창 넘김&종료
	if (textWindow->getActive() && (input->isKeyUp(VK_RETURN) || input->getMouseLButtonDown())) {

		switch (eventCount) {
		case 3:
			eventCount = 2; // 다음 이벤트로
			textWindow->resetStrLength();
			textWindow->setActive(false);
			break;
		case 9:
			eventCount = 8;
			textWindow->resetStrLength();
			
			break;
		default:
			textWindow->setActive(false);
			eventCount = 0;
			textWindow->resetStrLength();
			break;
		}
	}

	// 상호작용 이벤트
	if (input->isKeyUp(VK_RETURN)) {

		if ((player->p_PosX == 8 && player->p_PosY == 24) || 
			(player->p_PosX == 5 && player->p_PosY == 26) ||
			(player->p_PosX == 10 && player->p_PosY == 26) ||
			(player->p_PosX == 6 && player->p_PosY == 27)) {
			eventCount = 1;
			textWindow->setActive(true);
		}

		// 엔딩
		if ((player->p_PosX == 132 && player->p_PosY == 8) ||
			(player->p_PosX == 133 && player->p_PosY == 9) ) {
			Dark = 0;
			fade->setalphaStart(true);
			ending = true;
		}

		// 기름병들
		{
			if (ShadowEventStart == 2 && item[0] != 1 &&
				(player->p_PosX == 26 && player->p_PosY == 13)) {
				item[0] = 1;
				LantenAlpha = 0;
				eventCount = 9;
				textWindow->setActive(true);
			}
			if (item[1] != 1 &&
				(player->p_PosX == 62 && player->p_PosY == 14)) {
				item[1] = 1;
				LantenAlpha = 0;
				eventCount = 8;
				textWindow->setActive(true);
			}
			if (item[2] != 1 &&
				(player->p_PosX == 118 && player->p_PosY == 28)) {
				item[2] = 1;
				LantenAlpha = 0;
				eventCount = 8;
				textWindow->setActive(true);
			}
			if (item[3] != 1 &&
				(player->p_PosX == 66 && player->p_PosY == 24)) {
				item[3] = 1;
				LantenAlpha = 0;
				Dark = 0;
				eventCount = 11;
				textWindow->setActive(true);
			}
		}

		// 세이브 포인트
		if ((player->p_PosX == 12 && player->p_PosY == 12) ||
			(player->p_PosX == 34 && player->p_PosY == 19) ||
			(player->p_PosX == 78 && player->p_PosY == 4) ||
			(player->p_PosX == 128 && player->p_PosY == 13)) {
			Save();
			eventCount = 4;
			switch (player->p_PosX) {
			case 12:
				Lanten1->settingTexture(graphics, "..\\Resources\\Object\\save_point_Y.png", 95, 131, 1);
				break;
			case 34:
				Lanten2->settingTexture(graphics, "..\\Resources\\Object\\save_point_Y.png", 95, 131, 1);
				break;
			case 78:
				Lanten3->settingTexture(graphics, "..\\Resources\\Object\\save_point_Y.png", 95, 131, 1);
				break;
			case 128:
				Lanten4->settingTexture(graphics, "..\\Resources\\Object\\save_point_Y.png", 95, 131, 1);
				break;
			}
			textWindow->setActive(true);
		}

		// 칼
		if (!KnifeSw && (player->p_PosX == 136 && player->p_PosY == 20)) {
			eventCount = 5;
			objectManager->RemoveObject("knife");
			KnifeSw = true;
			textWindow->setActive(true);
		}

		// 열쇠
		if (!KeySw && (player->p_PosX == 122 && player->p_PosY == 8)) {
			eventCount = 6;
			objectManager->RemoveObject("key");
			KeySw = true;
			textWindow->setActive(true);
		}

		// 게임오버
		if (gameOverAl >= 254) {
			Game *temp = new Room5;
			ChangeScene(temp);
		}
	}
	
	// 위치 기반 이벤트
	{
		if (firstlan == false && (
			(player->p_PosX == 18 && player->p_PosY == 17) ||
			(player->p_PosX == 18 && player->p_PosY == 18))) {
			eventCount = 10;
			textWindow->setActive(true);
			firstlan = true;
		}

		if (colEvent == false &&(
			(player->p_PosX == 18 && player->p_PosY == 25) ||
			(player->p_PosX == 19 && player->p_PosY == 25) ||
			(player->p_PosX == 20 && player->p_PosY == 25))) {
			Sleep(500);
			eventCount = 2;
			textWindow->setActive(true);
			colEvent = true;
		}
		
		else if ((player->p_PosX == 18 && player->p_PosY == 24) ||
			(player->p_PosX == 19 && player->p_PosY == 24) ||
			(player->p_PosX == 20 && player->p_PosY == 24)) {
			colEvent = false;
		}

		if ((player->p_PosX == 32 && player->p_PosY == 19) && !monsterStart == 1) {
			monsterStart = 1;
		}

		if ((player->p_PosX == 64 && player->p_PosY == 25) && !monsterStart2) {
			monsterStart2 = 1;
		}

		// 그림자 몬스터들
		if (ShadowEventStart == 0 && (
			(player->p_PosX == 22 && player->p_PosY == 13) ||
			(player->p_PosX == 22 && player->p_PosY == 14) ||
			(player->p_PosX == 22 && player->p_PosY == 15))) {
			ShadowEventStart = 1;
		}

		if (ShadowEventStart == 1 && (
			(player->p_PosX == 26 && player->p_PosY == 13) ||
			(player->p_PosX == 26 && player->p_PosY == 14) ||
			(player->p_PosX == 26 && player->p_PosY == 15))) {
			ShadowEventStart = 2;
			eventCount = 7;
			textWindow->setActive(true);
		}

		if (!shadowMonsterEvent && (
			(player->p_PosX == 47 && player->p_PosY == 23) ||
			(player->p_PosX == 48 && player->p_PosY == 23) ||
			(player->p_PosX == 49 && player->p_PosY == 23))) {
			shadowMonsterEvent = true;
		}

		// 사냥꾼 집 이벤트
		if (HouseEvent == false && (
			(player->p_PosX == 74 && player->p_PosY == 18) ||
			(player->p_PosX == 74 && player->p_PosY == 19) ||
			(player->p_PosX == 74 && player->p_PosY == 20))) {
			Sleep(500);
			House1->settingTexture(graphics, "..\\Resources\\Object\\hunter_house_n.png", 64 * 14, 64 * 15, 1);
			HouseEvent = true;
		}

		// 토템 이벤트
		if (TotemEvent == 0 && (
			(player->p_PosX == 86 && player->p_PosY == 11) ||
			(player->p_PosX == 87 && player->p_PosY == 11) ||
			(player->p_PosX == 88 && player->p_PosY == 11))) {
			Totem1->settingTexture(graphics, "..\\Resources\\Object\\totem_l_Y.png", 64 * 3, 64 * 7, 1);
			Totem2->settingTexture(graphics, "..\\Resources\\Object\\totem_r_Y.png", 64 * 3, 64 * 7, 1); 
			TotemEvent = 1;
		}

		// 앞만 보고 가는 길 이벤트
		if (monsterStart3 == 0 && (
			(player->p_PosX == 90 && player->p_PosY == 14) ||
			(player->p_PosX == 89 && player->p_PosY == 15) )) {
			monsterStart3 = 1;
		}
		
		else if (monsterStart3 == 1 && (
			(player->p_PosX == 98 && player->p_PosY == 21) ||
			(player->p_PosX == 98 && player->p_PosY == 22) ||
			(player->p_PosX == 98 && player->p_PosY == 23))) {
			monsterStart3 = 3;
		}

		// 게임 오버
		if ((monsterStart != 2 && (mop1->m_PosX == player->p_PosX && mop1->m_PosY == player->p_PosY)) ||


			(monsterStart2 != 3 && (mop6->m_PosX == player->p_PosX && mop6->m_PosY == player->p_PosY) ||
			(mop7->m_PosX == player->p_PosX && mop7->m_PosY == player->p_PosY) ||
			(mop8->m_PosX == player->p_PosX && mop8->m_PosY == player->p_PosY) ||
			(mop9->m_PosX == player->p_PosX && mop9->m_PosY == player->p_PosY)) ){
			gameOverSw = true;
		}

		if (monsterStart2 != 2 &&
			(mop2->m_PosX == player->p_PosX && mop2->m_PosY == player->p_PosY) ||
			(mop3->m_PosX == player->p_PosX && mop3->m_PosY == player->p_PosY) ||
			(mop4->m_PosX == player->p_PosX && mop4->m_PosY == player->p_PosY) ||
			(mop5->m_PosX == player->p_PosX && mop5->m_PosY == player->p_PosY)) {
			gameOverSw = true;
		}

		if (MonsterAlpha[0]>=253 && (
			(player->p_PosX == 48 && player->p_PosY == 23) ||
			(player->p_PosX == 48 && player->p_PosY == 22) ||
			(player->p_PosX == 47 && player->p_PosY == 22))) {
			gameOverSw = true;
		}
		if (MonsterAlpha[1]>=253 && (
			(player->p_PosX == 48 && player->p_PosY == 21) ||
			(player->p_PosX == 48 && player->p_PosY == 20) ||
			(player->p_PosX == 49 && player->p_PosY == 21))) {
			gameOverSw = true;
		}
		if (MonsterAlpha[2] >= 253 && (
			(player->p_PosX == 48 && player->p_PosY == 19) ||
			(player->p_PosX == 48 && player->p_PosY == 18) ||
			(player->p_PosX == 47 && player->p_PosY == 19))) {
			gameOverSw = true;
		}

		//// 동화 내용
		//if (storyText[0] == 0 && (
		//	(player->p_PosX == 10 && player->p_PosY == 10) ||
		//	(player->p_PosX == 11 && player->p_PosY == 9) )) {
		//	eventCount = 8;
		//	textWindow->setActive(true);
		//	storyText[0] = 1;
		//}

		//if (storyText[1] == 0 && (
		//	(player->p_PosX == 29 && player->p_PosY == 15) ||
		//	(player->p_PosX == 28 && player->p_PosY == 16))) {
		//	eventCount = 9;
		//	textWindow->setActive(true);
		//	storyText[1] = 1;
		//}
	}

	if (ShadowEventStart == 1) {
		shadows->drawable = true;
	}
	else {
		shadows->drawable = false;
	}

	///////////////////////////
}
Esempio n. 22
0
	void TransitionFade::OnUpdate()
	{
		float cp = 0.0f;
		float cn = 0.0f;

		if (time < fadeoutDuration)
		{
			cp = 1.0f - time / fadeoutDuration;
		}
		else if (time <= fadeoutDuration + fadeinDuration)
		{
			if (!IsSceneChanged())
			{
				ChangeScene();
			}

			cn = (time - fadeoutDuration) / fadeinDuration;
		}
		else
		{
			if (!IsSceneChanged())
			{
				ChangeScene();
			}

			if (!GetIsFinished())
			{
				Finish();
			}

			cn = 1.0f;
		}

		uint8_t cp_ = Clamp(cp * 255, 255, 0);
		uint8_t cn_ = Clamp(cn * 255, 255, 0);

		DrawRectangleWithPreviousScene(
			Vector2DF(0.0, 0.0),
			Vector2DF(1.0, 0.0),
			Vector2DF(1.0, 1.0),
			Vector2DF(0.0, 1.0),
			Color(255, 255, 255, cp_),
			Color(255, 255, 255, cp_),
			Color(255, 255, 255, cp_),
			Color(255, 255, 255, cp_),
			Vector2DF(0.0, 0.0),
			Vector2DF(1.0, 0.0),
			Vector2DF(1.0, 1.0),
			Vector2DF(0.0, 1.0));

		DrawRectangleWithNextScene(
			Vector2DF(0.0, 0.0),
			Vector2DF(1.0, 0.0),
			Vector2DF(1.0, 1.0),
			Vector2DF(0.0, 1.0),
			Color(255, 255, 255, cn_),
			Color(255, 255, 255, cn_),
			Color(255, 255, 255, cn_),
			Color(255, 255, 255, cn_),
			Vector2DF(0.0, 0.0),
			Vector2DF(1.0, 0.0),
			Vector2DF(1.0, 1.0),
			Vector2DF(0.0, 1.0));

		time += Engine::GetDeltaTime();
	}
Esempio n. 23
0
void Clear_Update()
{
	if (Keyboard_Get(KEY_INPUT_RIGHT) == 1 || GamePad_Get(PAD_INPUT_RIGHT)==1)
	{
		SelectCnt = (SelectCnt + 1) % 3;
	}
	if (Keyboard_Get(KEY_INPUT_LEFT) == 1 || GamePad_Get(PAD_INPUT_LEFT)==1)
	{
		SelectCnt = (SelectCnt + 2) % 3;
	}
	if (Keyboard_Get(KEY_INPUT_RIGHT) == 1 || GamePad_Get(PAD_INPUT_RIGHT) == 1 || Keyboard_Get(KEY_INPUT_LEFT) == 1 || GamePad_Get(PAD_INPUT_LEFT)==1)
	{
		for (int i = 0; i < 3; i++)
		{
			if (i == SelectCnt)
			{
				Menu_clear[i].image = GraphicHandle[6];
				PlaySoundMem(SoundHandle[1], DX_PLAYTYPE_BACK, true);
			}
			else
			{
				Menu_clear[i].image = GraphicHandle[7];
				PlaySoundMem(SoundHandle[1], DX_PLAYTYPE_BACK, true);
			}
		}
	}
	if (Keyboard_Get(KEY_INPUT_Z) == 1 && SelectCnt == 0 || GamePad_Get(PAD_INPUT_1)==1&&SelectCnt==0)	//りとらいが押されたらゲームシーンに移る
	{
		StopSoundMem(SoundHandle[4]);
		PlaySoundMem(SoundHandle[2], DX_PLAYTYPE_BACK, true);
		PlaySoundMem(SoundHandle[0], DX_PLAYTYPE_LOOP, true);
		ChangeScene(gamepre);
	}
	if (Keyboard_Get(KEY_INPUT_Z) == 1 && SelectCnt == 1 || GamePad_Get(PAD_INPUT_1)==1&&SelectCnt==1)	//たいとるが押されたらタイトルシーンに移る
	{
		StopSoundMem(SoundHandle[4]);
		PlaySoundMem(SoundHandle[2], DX_PLAYTYPE_BACK, true);
		PlaySoundMem(SoundHandle[0], DX_PLAYTYPE_LOOP, true);
		Title_Initialize();			//タイトルの初期化処理もする
		ChangeScene(title);
	}
	if (Keyboard_Get(KEY_INPUT_Z) == 1 && SelectCnt == 2||GamePad_Get(PAD_INPUT_1)==1&&SelectCnt==2)	//おわるが押されたら終了する
	{
		StopSoundMem(SoundHandle[4]);
		PlaySoundMem(SoundHandle[2], DX_PLAYTYPE_NORMAL, true);
			GameContinueFlag = false;	//ゲームの終了処理もする
	}
	if (Keyboard_Get(KEY_INPUT_X) == 1 || GamePad_Get(PAD_INPUT_2)==1)	//xキーが押されたらおわるに移動する
	{
		SelectCnt = 2;
		for (int i = 0; i < 3; i++)
		{
			if (i == SelectCnt)
			{
				Menu_clear[i].image = GraphicHandle[6];
				PlaySoundMem(SoundHandle[1], DX_PLAYTYPE_BACK, true);
			}
			else
			{
				Menu_clear[i].image = GraphicHandle[7];
				PlaySoundMem(SoundHandle[1], DX_PLAYTYPE_BACK, true);
			}
		}
	}
}