* view sample is compilable

git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1355 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
trass3r 2010-01-13 21:49:59 +00:00
parent bf539551b9
commit 3fa986f94e

View File

@ -6,64 +6,64 @@ import dsfml.graphics.all;
void main() void main()
{ {
RenderWindow window = new RenderWindow(VideoMode(800, 600), "View sample"); RenderWindow window = new RenderWindow(VideoMode(800, 600), "View sample");
window.setFramerateLimit(100); window.setFramerateLimit(100);
Input input = window.getInput(); Input input = window.getInput();
Vector2f top; Vector2f top;
Rect!(float) bound; Rect!(float) bound;
Shape s; Shape s;
bool mousePressed; bool mousePressed;
Sprite background = new Sprite(new Image("Data/background.jpg")); Sprite background = new Sprite(new Image("Data/background.jpg"));
Font f = new Font("Data/cheeseburger.ttf"); Font f = new Font("Data/cheeseburger.ttf");
String str = new String("Create a selection of the background with your mouse.\nPress Enter to zoom to this selection.\nPress Escape to return to the default view."c, f); Text str = new Text("Create a selection of the background with your mouse.\nPress Enter to zoom to this selection.\nPress Escape to return to the default view."c, f);
while (window.isOpened()) while (window.isOpened())
{ {
Event evt; Event evt;
while (window.getEvent(evt)) while (window.getEvent(evt))
{ {
if ( evt.Type == Event.EventType.MOUSEBUTTONPRESSED && if ( evt.Type == EventType.MouseButtonPressed &&
evt.MouseButton.Button == MouseButtons.LEFT) evt.MouseButton.Button == MouseButtons.Left)
{ {
top = window.convertCoords(input.getMouseX(), input.getMouseY()); top = window.convertCoords(input.getMouseX(), input.getMouseY());
mousePressed = true; mousePressed = true;
} }
else if ( evt.Type == Event.EventType.MOUSEBUTTONRELEASED && else if ( evt.Type == EventType.MouseButtonReleased &&
evt.MouseButton.Button == MouseButtons.LEFT) evt.MouseButton.Button == MouseButtons.Left)
{ {
mousePressed = false; mousePressed = false;
} }
else if ( evt.Type == Event.EventType.MOUSEMOVED && else if ( evt.Type == EventType.MouseMoved &&
mousePressed) mousePressed)
{ {
Vector2f bottom = window.convertCoords(input.getMouseX(), input.getMouseY()); Vector2f bottom = window.convertCoords(input.getMouseX(), input.getMouseY());
bound = new Rect!(float)(top.x, top.y, bottom.x, bottom.y); bound = FloatRect(top.x, top.y, bottom.x, bottom.y);
s = Shape.rectangle(top.x, top.y, bottom.x, bottom.y, Color(0, 0, 0, 0), 1, Color.BLACK); s = Shape.rectangle(top.x, top.y, bottom.x, bottom.y, Color(0, 0, 0, 0), 1, Color.BLACK);
} }
else if ( evt.Type == Event.EventType.KEYPRESSED && else if ( evt.Type == EventType.KeyPressed &&
evt.Key.Code == KeyCode.RETURN) evt.Key.Code == KeyCode.Return)
{ {
if (bound !is null) if (bound != FloatRect())
window.setView(new View(bound)); window.setView(new View(bound));
s = null; s = null;
} }
else if ( evt.Type == Event.EventType.KEYPRESSED && else if ( evt.Type == EventType.KeyPressed &&
evt.Key.Code == KeyCode.ESCAPE) evt.Key.Code == KeyCode.Escape)
{ {
window.setView(window.getDefaultView()); window.setView(window.getDefaultView());
} }
else if ( evt.Type == Event.EventType.CLOSED) else if ( evt.Type == EventType.Closed)
window.close(); window.close();
} }
window.draw(background); window.draw(background);
window.draw(str); window.draw(str);
if (s !is null) window.draw(s); if (s !is null) window.draw(s);
window.display(); window.display();
} }
} }