Ejemplo n.º 1
0
int _tmain(int argc, _TCHAR* argv[])
{		
	int result = EXIT_SUCCESS;
	DOMConfigurator::configure("Log4cxxConfig.xml");
	string input;
	int playerPort;
	int destPort;
	int player = 0;
	Player playerA = Player();
	Player playerB = Player();

	char W[200]  = "W";
	char A[200]  = "A";
	char S[200]  = "S";
	char D[200]  = "D";

	network.initialise();
	//host or client for window title and for log.
	char* applicationName;

	applicationName = "Tag";

    SMALL_RECT windowSize = {0, 0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2};
    SetConsoleWindowInfo(hConsole, TRUE, &windowSize);
		
    
	bool gameOver = false;
	Vector2f mapBoundries = Vector2f(SCREEN_WIDTH, SCREEN_HEIGHT);
	
	
	
	RenderWindow renderWindow(VideoMode(SCREEN_WIDTH/2, SCREEN_HEIGHT, 32), applicationName);
	renderWindow.SetFramerateLimit(30);
	renderWindow.SetSize(SCREEN_WIDTH/2, SCREEN_HEIGHT);
	Shape player1circle = sf::Shape::Circle(Vector2f(0,0), 20.0f, sf::Color::Blue);
	Shape player2circle = sf::Shape::Circle(Vector2f(0,0), 20.0f, sf::Color::Red);



	cout << "Are you player A or B?";
	cin >> input;
	
	if (input == "a" || input == "A")
	{	

		player = 1;
		playerPort = 28000;
		destPort = 28001;
		playerA.setPort(playerPort);
		playerB.setPort(destPort);
		network.setupUDP(28000,_ip);
		LOG4CXX_INFO(loggerMyMain, "Player Binds A" );

	}

	else if (input == "b" || input == "B")
	{	
		
		player = 2;
		playerPort = 28001;
		destPort = 28000;
		playerA.setPort(destPort);
		playerB.setPort(playerPort);
		network.setupUDP(28001,_ip);
		LOG4CXX_INFO(loggerMyMain, "Player Binds B" );

	}

	playerA.setPosition(sf::Vector2f(80,80));
	playerB.setPosition(sf::Vector2f(120,120));

	player1circle.SetPosition(playerA.getPosition());
	player2circle.SetPosition(playerB.getPosition());

	try
	{

		//While the connection is not closed remotely
		while(renderWindow.IsOpened() && !gameOver)
		{		
		
			Event sfmlEvent;
		
			while (renderWindow.PollEvent(sfmlEvent))
			{
				// Close window : exit
				if (sfmlEvent.Type == Event::Closed)
				{
					renderWindow.Close();
				}
				else if (sfmlEvent.Type == Event::KeyPressed)
				{

				      if (sf::Keyboard::IsKeyPressed(sf::Keyboard::W))
					  {			
						if(player == 2)
						{
							playerA.update(1);
						}

						else if(player == 1)
						{
							playerB.update(1);
						}
						network.sendData("127.0.0.1",destPort, "W");
					  }

					  if (sf::Keyboard::IsKeyPressed(sf::Keyboard::A))
					  {			
						if(player == 2)
						{
							playerA.update(2);
						}

						else if(player == 1)
						{
							playerB.update(2);
						}
						network.sendData("127.0.0.1",destPort, "A");
					  }

					  if (sf::Keyboard::IsKeyPressed(sf::Keyboard::S))
					  {			
						if(player == 2)
						{
							playerA.update(3);
						}

						else if(player == 1)
						{
							playerB.update(3);
						}
						network.sendData("127.0.0.1",destPort, "S");
					  }

					  if (sf::Keyboard::IsKeyPressed(sf::Keyboard::D))
					  {			
						  if(player == 2)
						{
							playerA.update(4);
						}

						else if(player == 1)
						{
							playerB.update(4);
						}
						  network.sendData("127.0.0.1",destPort, "D");
					  }


					

					//cout << "Message recieved from, port = " << network.getSenderPort() << ", ip = "<< network.getSenderIP() << endl; 
					//messageRecieved = false;
					}

					if(network.receiveData(message))
					{
					LOG4CXX_INFO(loggerMyMain, message );
					
					if(strcmp(message , W) == 0)
					{		
						LOG4CXX_INFO(loggerMyMain, "Message Recieved" );
						LOG4CXX_INFO(loggerMyMain, message );
							if(player == 1)
							{
								playerA.update(1);
							}

							else if(player == 2)
							{
								playerB.update(1);
							}
					}

					if(strcmp(message , A) == 0)
					{
						LOG4CXX_INFO(loggerMyMain, "Message Recieved" );
						LOG4CXX_INFO(loggerMyMain, message );
							if(player == 1)
							{
								playerA.update(2);
							}

							else if(player == 2)
							{
								playerB.update(2);
							}				

					}

					if(strcmp(message , S) == 0)
					{
						LOG4CXX_INFO(loggerMyMain, "Message Recieved" );
						LOG4CXX_INFO(loggerMyMain, message );
							if(player == 1)
							{
								playerA.update(3);
							}

							else if(player == 2)
							{
								playerB.update(3);
							}
					}

					if(strcmp(message , D) == 0)
					{
						LOG4CXX_INFO(loggerMyMain, "Message Recieved" );
						LOG4CXX_INFO(loggerMyMain, message );
							if(player == 1)
							{
								playerA.update(4);
							}

							else if(player == 2)
							{
								playerB.update(4);
							}

						}


						  
					}
				}

				player1circle.SetPosition(playerA.getPosition());
				player2circle.SetPosition(playerB.getPosition());
			
				renderWindow.Clear();
				renderWindow.Draw(player1circle);
				renderWindow.Draw(player2circle);
				renderWindow.Display();
		}
	
		renderWindow.Close();
	
	

		cout << "Exiting application.\n";
    
	}
    catch(Exception&)
    {
		result = EXIT_FAILURE;
    }	

	
	return result;
}