Sure.
int main()
{
//sf::Thread PrintFile(&PrintFile);
//PrintFile.Launch();
//ifstream inFile; // Declare inFile
//ofstream outFile; // Declare outFile
bool PressA = false;
std::string XCoord;
sf::String text;
sf::RenderWindow App(sf::VideoMode::GetMode(0), "Laz's Interactive Map :: The Wrath... :: PvP Created");
App.ShowMouseCursor(true);
bool windowed = true;
sf::VideoMode DesktopMode = sf::VideoMode::GetDesktopMode();
sf::Font TypeKnight;
if (!TypeKnight.LoadFromFile("Knights Templar.ttf"))
{
return EXIT_FAILURE;
}
sf::String TopLeft("Text Input: ________________");
TopLeft.SetFont(TypeKnight);
TopLeft.Move(10,10);
TopLeft.SetColor(sf::Color::White);
sf::String Main("Press F12 to toggle the help menu");
Main.SetFont(TypeKnight);
Main.Move(10.f, 600.f);
Main.SetColor(sf::Color::White);
bool help = false;
sf::String Help("Type A to add a coordinate\n\nType R to remove a coordinate\n\nType F to find a coordinate\n\nPress F1 to toggle FullScreen mode\n\nPress ESC to exit the program\n\nPress F12 to toggle the help menu");
Help.SetFont(TypeKnight);
Help.Move(10.f,300.f);
sf::String CopyRight("CopyRight 2010 Tyler Petresky :: All program code is subject to CopyRight Laws");
CopyRight.SetFont(TypeKnight);
CopyRight.SetColor(sf::Color::White);
CopyRight.Move(1300.f, 125.f);
CopyRight.Scale(0.5f, 0.5f);
CopyRight.Rotate(-90);
// Creates the PE map :: 7000x3000
sf::Shape MapPh;
MapPh.AddPoint(0,0,sf::Color(0,100,0));
MapPh.AddPoint(7000,0,sf::Color(0,100,0));
//MapPh.AddPoint(3500,1500,sf::Color(0,125,0));
MapPh.AddPoint(7000,3000,sf::Color(0,100,0));
MapPh.AddPoint(0,3000,sf::Color(0,100,0));
MapPh.EnableFill(true);
MapPh.EnableOutline(false);
MapPh.SetOutlineWidth(10);
sf::Shape PhMid = sf::Shape::Line(3000, 0, 3000, 3000, 20, sf::Color::Black);
sf::Shape DrMid = sf::Shape::Line(4000, 0, 4000, 3000, 20, sf::Color::Black);
sf::Vector2f Center(3500, 1500);
sf::Vector2f HalfSize(1750, 750);
sf::View View(Center, HalfSize);
View.Zoom(0.35f);
// Main loop
while (App.IsOpened())
{
/*int AdjWid;
int AdjHei;
int newWidth;
int newHeight;
int origWidth = App.GetWidth();
int origHeight = App.GetHeight();*/
// Event loop
sf::Event Event;
while (App.GetEvent(Event))
{
/*if (Event.Type == sf::Event::Resized) {
newWidth = App.GetWidth();
newHeight = App.GetHeight();
AdjWid = newWidth - origWidth;
AdjHei = newHeight - origHeight;
}*/
// Close window : exit
if (Event.Type == sf::Event::Closed)
App.Close();
// Press escape : exit
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))
App.Close();
// Press F1 : Switch video mode
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::F1)) {
if (windowed == true) {
App.Create(DesktopMode, "Laz's Interactive Map :: The Wrath... :: PvP Created", sf::Style::Fullscreen);
windowed = false;
}
else {
App.Create(sf::VideoMode::GetMode(0), "Laz's Interactive Map :: The Wrath... :: PvP Created");
windowed = true;
}
}
// Press F12 : Toggle help menu
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::F12)) {
if (help == false) {
help = true;
}
else {
help = false;
}
}
enum State { State0, State1, State2, State3 };
State myState = State0;
// Press A : Add coords
if (myState == State0 && (Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::A))
{
std::cout << "ONE" << std::endl;
PressA = true;
myState = State1;
}
if (myState == State1 && (Event.Type == sf::Event::TextEntered))
{
std::cout << "TWO" << std::endl;
// Handle ASCII characters only
if (Event.Text.Unicode > 47 && Event.Text.Unicode < 58)
{
std::cout << "THREE" << std::endl;
XCoord += static_cast<int>(Event.Text.Unicode);
text.SetText(XCoord);
myState = State2;
}
else {
text.SetText("");
}
}
}
float ElapsedTime = App.GetFrameTime();
// Move the map around the screen
float Offset = 2000.f * App.GetFrameTime();
if (App.GetInput().IsKeyDown(sf::Key::Up)) View.Move( 0, -Offset);
if (App.GetInput().IsKeyDown(sf::Key::Down)) View.Move( 0, Offset);
if (App.GetInput().IsKeyDown(sf::Key::Left)) View.Move(-Offset, 0);
if (App.GetInput().IsKeyDown(sf::Key::Right)) View.Move(Offset, 0);
// Zoom and unzoom using + and - keys
if (App.GetInput().IsKeyDown(sf::Key::Add)) View.Zoom(1.005f);
if (App.GetInput().IsKeyDown(sf::Key::Subtract)) View.Zoom(0.994f);
App.SetView(View);
App.Clear();
App.Draw(MapPh);
App.Draw(PhMid);
App.Draw(DrMid);
// Reset to the default view to draw the interface
App.SetView(App.GetDefaultView());
App.Draw(TopLeft);
if (help == true)
App.Draw(Help);
else
App.Draw(Main);
if (PressA == true)
App.Draw(text);
App.Draw(CopyRight);
App.Display();
}
return 0;
}