Пример #1
0
void GameController::UsingTitle()
{
	//Press W,S to select the menuitem.
	//Press J to use the menuitem.
	SetPosition(62, 20);
	cout << "  " << flush;


	switch (hitkey)
	{
	case TITLE_MENU_UP: {//Move the '->' up.
		if (Scene.GetTitleCursorPositionY() >= 16)
		{
			SetPosition(Scene.GetTitleCursorPositionX(), Scene.GetTitleCursorPositionY());
			cout << "  " << flush;
			Scene.SetTitleCursorPositionY(Scene.GetTitleCursorPositionY() - 2);
		}; break;
	}
	case TITLE_MENU_DOWN: {//Move the '->' down.
		if (Scene.GetTitleCursorPositionY() <= 18)
		{
			SetPosition(Scene.GetTitleCursorPositionX(), Scene.GetTitleCursorPositionY());
			cout << "  " << flush;
			Scene.SetTitleCursorPositionY(Scene.GetTitleCursorPositionY() + 2);
		}; break;
	}
	case TITLE_MENU_PRESS: {
		switch (Scene.GetTitleCursorPositionY())
		{
		case 14: {
			Scene.TitleClear();
			game_start = true;
		}; break;
		case 16: {
			Scene.DrawSelectSavedDataArea();
			SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
			cout << "->" << flush;
			//The followings are the operations of reading the saved data.
			while (1)
			{
				if (_kbhit())
				{
					hitkey = _getch();
					if (hitkey == 'k')
					{
						Scene.SelectSavedDataAreaClear();
						break;
					}

					switch (tolower(hitkey))
					{
					case TITLE_MENU_UP: {
						if (Scene.GetSavedDataCursorPositionY() >= 12)
						{
							SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
							cout << "  " << flush;
							Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() - 1);
						}
					}break;
					case TITLE_MENU_DOWN: {
						if (Scene.GetSavedDataCursorPositionY() <= 19)
						{
							SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
							cout << "  " << flush;
							Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() + 1);
						}
					}break;
					case TITLE_MENU_PRESS: {
						//The class FileIO will start to work here.
						switch (Scene.GetSavedDataCursorPositionY())//The cursor's y position will decide which data to be changed.
						{
						case 11: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata1.txt"); //Then the important information in the game will be initialized.

						}break;
						case 12: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata2.txt");
						}break;
						case 13: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata3.txt");
						}break;
						case 14: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata4.txt");
						}break;
						case 15: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata5.txt");
						}break;
						case 16: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata6.txt");
						}break;
						case 17: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata7.txt");
						}break;
						case 18: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata8.txt");
						}break;
						case 19: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata9.txt");
						}break;
						case 20: {
							FileIO fileIO;
							fileIO.ReadSavedData("saveddata10.txt");
						}break;
						}
					}break;
					}
					SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
					cout << "->" << flush;
				}
			}
		}; break;
		case 18: {
		}; break;
		case 20:exit(0); break;
		}
	}break;
	default:
		break;
	}
	if (!game_start)//Avoid drawing '->' in the scene again when the game starts.
	{
		SetPosition(Scene.GetTitleCursorPositionX(), Scene.GetTitleCursorPositionY());
		cout << "->" << flush;
	}
}
Пример #2
0
void GameController::UsingMenu()
{
	//Press O,L to select the menuitem. 
	//Press P to use the menuitem.
	SetPosition(62, 20);
	cout << "  " << flush;

	switch (hitkey)
	{
	case MENU_UP: {//Move the '->' up.
		if (Scene.GetMenuPositionY() >= 4)
		{
			SetPosition(Scene.GetMenuPositionX(), Scene.GetMenuPositionY());
			cout << "  " << flush;
			Scene.SetMenuPositionY(Scene.GetMenuPositionY() - 2);
		}
	}; break;
	case MENU_DOWN: {//Move the '->' down.
		if (Scene.GetMenuPositionY() <= 12)
		{
			SetPosition(Scene.GetMenuPositionX(), Scene.GetMenuPositionY());
			cout << "  " << flush;
			Scene.SetMenuPositionY(Scene.GetMenuPositionY() + 2);
		}
	}; break;
	case MENU_PRESS: {
		switch (Scene.GetMenuPositionY())
		{
		case 2: {
			Scene.DrawStatusArea();
			while (1)
			{
				if (_kbhit())
				{
					hitkey = _getch();
					if (hitkey == 'k')
					{
						Scene.AreasClear();
						Scene.RedrawCharaters();
						break;
					}
				}
			}
		}; break;
		case 4: {
			Scene.DrawItemsArea();
			while (1)
			{
				if (_kbhit())
				{
					hitkey = _getch();
					if (hitkey == 'k')
					{
						Scene.AreasClear();
						Scene.RedrawCharaters();
						break;
					}
				}
			}
		}; break;
		case 6: {
				Scene.DrawTechniquesArea();
				while (1)
				{
					if (_kbhit())
					{
						hitkey = _getch();
						if (hitkey == 'k')
						{
							Scene.AreasClear();
							Scene.RedrawCharaters();
							break;
						}
					}
				}
		}break;
		case 8: {
			Scene.DrawMap();
			while (1)
			{
				//The followings are the operations of the map.
				if (_kbhit())
				{
					MapSystem Map;
					SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY());
					cout << " " << endl;
					SetPosition(62, 10);
					cout << "  " << flush;

					hitkey = _getch();
					if (hitkey == 'k')
					{
						Scene.MapClear();
						Scene.RedrawCharaters();
						break;//If 'k' is pressed, the player will exit the map.
					}
					switch (tolower(hitkey))
					{
					case MOVE_UP:
					{

						SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); } break;
					case MOVE_DOWN:
					{
						SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); } break;
					case MOVE_LEFT:
					{
						SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); }break;
					case MOVE_RIGHT:
					{
						SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); } break;
					default:
						SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY());
						break;
					}
					cout << "->" << flush;
				}
			}
		}; break;
		case 10: {		
				Scene.DrawAccomplishmentsArea();
				while (1)
				{
					if (_kbhit())
					{
						hitkey = _getch();
						if (hitkey == 'k')
						{
							Scene.AreasClear();
							Scene.RedrawCharaters();
							break;
						}
					}
				}
		}break;
		case 12: {
			Scene.DrawSelectSavedDataArea();
			SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
			cout << "->" << flush;
			//The followings are the operations of reading the saved data.
			while (1)
			{
				if (_kbhit())
				{
					hitkey = _getch();
					if (hitkey == 'k')
					{
						Scene.SelectSavedDataAreaClear();
						Scene.RedrawCharaters();
						break;
					}

					switch (hitkey)
					{
					case MENU_UP: {
						if (Scene.GetSavedDataCursorPositionY() >= 12)
						{
							SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
							cout << "  " << flush;
							Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() - 1);
						}
					}break;
					case MENU_DOWN: {
						if (Scene.GetSavedDataCursorPositionY() <= 19)
						{
							SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
							cout << "  " << flush;
							Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() + 1);
						}
					}break;
					case MENU_PRESS: {
						//The class FileIO will start to work here.
						switch (Scene.GetSavedDataCursorPositionY())//The cursor's y position will decide which data to be changed.
						{
						case 11: {			
							fileIO.ReadSavedData("saveddata1.txt"); //Then the important information in the game will be initialized.
						}break;
						case 12: {
							fileIO.ReadSavedData("saveddata2.txt");
						}break;
						case 13: {
							fileIO.ReadSavedData("saveddata3.txt");
						}break;
						case 14: {
							fileIO.ReadSavedData("saveddata4.txt");
						}break;
						case 15: {
							fileIO.ReadSavedData("saveddata5.txt");
						}break;
						case 16: {
							fileIO.ReadSavedData("saveddata6.txt");
						}break;
						case 17: {
							fileIO.ReadSavedData("saveddata7.txt");
						}break;
						case 18: {
							fileIO.ReadSavedData("saveddata8.txt");
						}break;
						case 19: {
							fileIO.ReadSavedData("saveddata9.txt");
						}break;
						case 20: {
							fileIO.ReadSavedData("saveddata10.txt");
						}break;
						}
					}break;
					}
					SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
					cout << "->" << flush;
				}
			}
		}; break;
		case 14: {
			Scene.DrawSelectSavedDataArea();
			SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
			cout << "->" << flush;
			while (1)
			{
				if (_kbhit())
				{
					hitkey = _getch();
					if (hitkey == 'k')
					{
						Scene.SelectSavedDataAreaClear();
						Scene.RedrawCharaters();
						break;
					}

					switch (tolower(hitkey))
					{
					case MENU_UP: {
						if (Scene.GetSavedDataCursorPositionY() >=12)
						{
							SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
							cout << "  " << flush;
							Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() - 1);
						}
					}break;
					case MENU_DOWN: {
						if (Scene.GetSavedDataCursorPositionY() <= 19)
						{
							SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
							cout << "  " << flush;
							Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() + 1);
						}
					}break;
					}
					SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY());
					cout << "->" << flush;
				}
			}
		}; break;
		default:;
			break;
		}
	}; break;
	}
	SetPosition(Scene.GetMenuPositionX(), Scene.GetMenuPositionY());
	cout << "->" << flush;

}