Пример #1
0
int main()
{
	std::list<MenuItem*> menu;
	std::list<MenuItem*>::iterator it;
	MenuItem menuItem1("Americano", 1500);
	MenuItem menuItem2("Latte", 2000);
	MenuItem menuItem3("Cappuccino", 2000);
	MenuItem menuItem4("Macchiato", 2500);
	MenuItem menuItem5("Espresso", 2500);

	menu.push_back(&menuItem1);
	menu.push_back(&menuItem2);

	Customer customer;
	Barista barista;

	customer.order("Americano", menu, barista);
	Coffee* coffee = customer.getCoffee();

	std::cout << "--- My Coffee ---" << std::endl;
	std::cout << coffee->getName() << std::endl;
	std::cout << coffee->cost() << std::endl;

	return 1;
}
Пример #2
0
StateMachine::State StateMachine::runGameDone() {
	State nextState;
	ResourceManager &resourceManager = ResourceManager::getInstance();
	sf::RenderWindow &win = resourceManager.win;

	sf::Sprite backGround;
	backGround.SetTexture(resourceManager.textures.getTexture(0,"MenuBackground"));
	backGround.SetPosition(win.GetWidth()/2 - backGround.GetSize().x/2, win.GetHeight()/2 - backGround.GetSize().y/2);


	int x = resourceManager.win.GetWidth()/2 - 430;
	int y = resourceManager.win.GetHeight()/2 + 270;
	Menu menu(x, y);
	Menu::MenuItem menuItem1("Main menu", mainMenu);
	menu.addMenuItem(menuItem1);

	sf::Sound sound;
	for (int i=0; i<resourceManager.numberOfPlayers; i++) {
		if (resourceManager.players[i]->numberOfCardsLeft <= 0) {
			sound.SetBuffer(resourceManager.sounds.getSound(resourceManager.players[i]->themeId,"Winning"));
		}
	}
	sound.Play();

	Stats stats[4];
	for (int i=0; i<resourceManager.numberOfPlayers; i++) {
		stats[i].readStatsFromPlayer(resourceManager.players[i]);
		resourceManager.drawableList.push_back(&stats[i]);
	}
	for (int i=0; i<resourceManager.mice.numberOfActivatedDevices; i++) {
		resourceManager.mice.mouseList[i].visible = (i==0) ? true : false;
	}
	bool done = false;
	while(!done){
		resourceManager.mice.update();
		win.Clear();
		sf::Event event;
		while (win.PollEvent(event))
		{
			if (event.Type == sf::Event::Closed) {
				nextState = quit;
				win.Close();
				done = true;
			}
			if ((event.Type == sf::Event::KeyPressed) && (event.Key.Code == sf::Keyboard::Escape)) {
				nextState = quit;
				win.Close();
				done = true;
			}
		}
		win.Draw(backGround);
		resourceManager.processDrawables();
		done = menu.getClickedState(nextState);
		win.Display();
	}
	return nextState;
}	
Пример #3
0
StateMachine::State StateMachine::runMainMenu() {
	State nextState;
	ResourceManager &resourceManager = ResourceManager::getInstance();
	sf::RenderWindow &win = resourceManager.win;

	sf::Sprite backGround;
	backGround.SetTexture(resourceManager.textures.getTexture(0,"MenuBackground"));
	backGround.SetPosition(win.GetWidth()/2 - backGround.GetSize().x/2, win.GetHeight()/2 - backGround.GetSize().y/2);
	
	sf::Sprite header;
	header.SetTexture(resourceManager.textures.getTexture(0,"HeaderMagicMemory"));
	header.SetPosition(win.GetWidth()/2 - header.GetSize().x/2, (win.GetHeight()/2 - 300) - header.GetSize().y/2);

	Menu menu;
	Menu::MenuItem menuItem1("New game", gameSetup);
	Menu::MenuItem menuItem2("Reload mice", loading);
	Menu::MenuItem menuItem3("Help", help);
	Menu::MenuItem menuItem4("Credits", credits);
	Menu::MenuItem menuItem5("Quit", quit);
	menu.addMenuItem(menuItem1);
	menu.addMenuItem(menuItem2);
	menu.addMenuItem(menuItem3);
	menu.addMenuItem(menuItem4);
	menu.addMenuItem(menuItem5);
	bool done = false;
	while (!done) {
		resourceManager.mice.update();
		win.Clear();
		sf::Event event;
		while (win.PollEvent(event))
		{
			if (event.Type == sf::Event::Closed) {
				nextState = quit;
				win.Close();
				done = true;
			}
			if ((event.Type == sf::Event::KeyPressed) && (event.Key.Code == sf::Keyboard::Escape)) {
				nextState = quit;
				win.Close();
				done = true;
			}
		}
		win.Draw(backGround);
		win.Draw(header);
		resourceManager.processDrawables();
		done = menu.getClickedState(nextState);
		win.Display();
	}
	return nextState;
}
Пример #4
0
StateMachine::State StateMachine::runHighScore() {
	State nextState;
	ResourceManager &resourceManager = ResourceManager::getInstance();
	sf::RenderWindow &win = resourceManager.win;

	sf::Sprite backGround;
	backGround.SetTexture(resourceManager.textures.getTexture(0,"MenuBackground"));
	backGround.SetPosition(win.GetWidth()/2 - backGround.GetSize().x/2, win.GetHeight()/2 - backGround.GetSize().y/2);

	sf::Sprite header;
	header.SetTexture(resourceManager.textures.getTexture(0,"HeaderHighScore"));
	header.SetPosition(win.GetWidth()/2 - header.GetSize().x/2, (win.GetHeight()/2 -300) - header.GetSize().y/2);

	int x = resourceManager.win.GetWidth()/2 - 430;
	int y = resourceManager.win.GetHeight()/2 + 270;
	Menu menu(x, y);
	Menu::MenuItem menuItem1("Back", mainMenu);
	menu.addMenuItem(menuItem1);
	bool done = false;
	while(!done){
		resourceManager.mice.update();
		win.Clear();
		sf::Event event;
		while (win.PollEvent(event))
		{
			if (event.Type == sf::Event::Closed) {
				nextState = quit;
				win.Close();
				done = true;
			}
			if ((event.Type == sf::Event::KeyPressed) && (event.Key.Code == sf::Keyboard::Escape)) {
				nextState = quit;
				win.Close();
				done = true;
			}
		}
		win.Draw(backGround);
		win.Draw(header);
		resourceManager.processDrawables();
		done = menu.getClickedState(nextState);
		win.Display();
	}
	return nextState;
}
Пример #5
0
StateMachine::State StateMachine::runCredits() {
	State nextState;
	ResourceManager &resourceManager = ResourceManager::getInstance();
	sf::RenderWindow &win = resourceManager.win;

	sf::Sprite backGround;
	backGround.SetTexture(resourceManager.textures.getTexture(0,"MenuBackground"));
	backGround.SetPosition(win.GetWidth()/2 - backGround.GetSize().x/2, win.GetHeight()/2 - backGround.GetSize().y/2);

	sf::Sprite creditsImage;
	creditsImage.SetTexture(resourceManager.textures.getTexture(0,"Credits"));
	int creditsImagePosX = win.GetWidth()/2 - creditsImage.GetSize().x/2;
	int creditsImagePosY = 150;
	int creditsImageWidth = 740;
	int creditsImageHeight = 500;
	creditsImage.SetPosition(creditsImagePosX, creditsImagePosY);

	sf::Shape border = sf::Shape::Rectangle(creditsImagePosX, creditsImagePosY, creditsImageWidth, creditsImageHeight, sf::Color(17, 56, 121, 120), 2.0F, sf::Color(0,0,0,255));

	sf::Sprite header;
	header.SetTexture(resourceManager.textures.getTexture(0,"HeaderCredits"));
	header.SetPosition(win.GetWidth()/2 - header.GetSize().x/2, (win.GetHeight()/2 -300) - header.GetSize().y/2);

	int x = resourceManager.win.GetWidth()/2;
	int y = resourceManager.win.GetHeight()/2 + 270;
	Menu menu(x, y);
	Menu::MenuItem menuItem1("Back", mainMenu);
	menu.addMenuItem(menuItem1);

	int scrollTop = 0;
	int maxScroll = creditsImage.GetSize().y - creditsImageHeight;
	int scrollSpeed = 20;
	bool done = false;
	while(!done){
		resourceManager.mice.update();
		win.Clear();
		sf::Event event;
		while (win.PollEvent(event))
		{
			if (event.Type == sf::Event::Closed) {
				nextState = quit;
				win.Close();
				done = true;
			}
			if ((event.Type == sf::Event::KeyPressed) && (event.Key.Code == sf::Keyboard::Escape)) {
				nextState = quit;
				win.Close();
				done = true;
			}
		}
		if (resourceManager.mice.mouseList[0].scroll != 0) {
			scrollTop += resourceManager.mice.mouseList->scroll*scrollSpeed;;
			scrollTop = std::max(0, scrollTop);
			scrollTop = std::min(maxScroll, scrollTop);
		}
		creditsImage.SetSubRect(sf::IntRect(0, scrollTop, creditsImageWidth, creditsImageHeight));
		creditsImage.SetPosition(creditsImagePosX, creditsImagePosY);
		win.Draw(backGround);
		win.Draw(border);
		win.Draw(creditsImage);
		win.Draw(header);
		resourceManager.processDrawables();
		done = menu.getClickedState(nextState);
		win.Display();
	}
	return nextState;
}