예제 #1
0
Container::Container(Vector2f pos, float rot, std::vector<Item*>* i, int t) :
	m_pos(pos), rotation(rot), items(i)
{
	type = t;
	open = false;
	invCols = 4;
	invRows = 5;
	invSize = 20;
	LoadAssets();
	SetupSlots();
	GenerateItems();
	createBox2dBody();
}
예제 #2
0
void Game::HandleInput()
{
	sf::Event evento;

	while (wnd->pollEvent(evento))
	{
		switch (evento.type)
		{
			case sf::Event::EventType::Closed://Evento para capturar el cierre de la ventana
			{
				wnd->close();//Cierro la ventana
			}
			break;

			case sf::Event::KeyPressed:
				{

					if (evento.key.code == sf::Keyboard::Space)
					{
						if (currentState == GameStates::INTRO)
						{
							currentState = GameStates::PLAYING;
							GenerateItems(layers);
							main->play();
						}
							
					}

					if (evento.key.code == sf::Keyboard::Escape)
					{
						currentState = GameStates::INTRO;
						wnd->setView(wnd->getDefaultView());
						main->stop();
					}
						

					if (evento.key.code == sf::Keyboard::R)
					{
						if (currentState == GameStates::PLAYING)
						{
							//map->Load("map_test_2.tmx");
							//layers.clear();
							//layers = map->GetLayers();
							GenerateItems(layers);
							main->stop();
							main->play();
						}					
					}
					
					if (evento.key.code == sf::Keyboard::P)
					{
						main->pause();
						pauseSound->play();
					
						if (oldState != currentState)
							oldState = currentState;

						if (currentState == GameStates::PLAYING)
							currentState = GameStates::PAUSED;
						else
						{
							currentState = GameStates::PLAYING;
							main->play();
						}
					}

				}
				break;

		default:	
			break;
		}

	}
}