Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef _MSC_VER
- #ifdef _WIN32
- #pragma comment( lib, "sfml-window.lib" )
- #pragma comment( lib, "sfml-graphics.lib" )
- #endif
- #endif
- #include <SFML\Graphics.hpp>
- #include <iostream>
- using namespace sf;
- using namespace std;
- int clamp (int x, int a, int b)
- {
- return min(max(a,x),b);
- }
- Color scaleColor(RectangleShape &r, float f)
- {
- Color c=r.getFillColor();
- c.r*=f;
- c.g*=f;
- c.b*=f;
- c.r=clamp(c.r,10,250);
- c.g=clamp(c.g,10,250);
- c.b=clamp(c.b,10,250);
- r.setFillColor(c);
- Color d=r.getOutlineColor();
- d.r*=f;
- d.g*=f;
- d.b*=f;
- d.r=clamp(d.r,10,250);
- d.g=clamp(d.g,10,250);
- d.b=clamp(d.b,10,250);
- r.setOutlineColor(d);
- return c;
- }
- int main()
- {
- VideoMode videoMode(320,240);
- RenderWindow window(videoMode,"KeyEvent Window");
- RectangleShape rectangle;
- rectangle.setPosition(30, 30);
- rectangle.setSize(Vector2f(50, 30));
- rectangle.setFillColor(Color::Yellow);
- rectangle.setOutlineColor(Color::Blue);
- rectangle.setOutlineThickness(3);
- while (window.isOpen())
- {
- window.clear();
- window.draw(rectangle);
- window.display();
- Event event;
- while (window.pollEvent(event))
- {
- if ( (event.type == Event::Closed) ||
- ((event.type == Event::KeyPressed) && (event.key.code==Keyboard::Escape)) )
- window.close();
- else
- {
- if (event.type == Event::KeyPressed)
- {
- switch(event.key.code)
- {
- case Keyboard::Up:
- rectangle.scale(1.0,1.1);
- rectangle.move(0.0,-10.0);
- scaleColor(rectangle,1.1);
- break;
- case Keyboard::Down:
- rectangle.scale(1,0.9);
- rectangle.move(0,10);
- scaleColor(rectangle,0.9);
- break;
- case Keyboard::Left:
- rectangle.scale(0.9,1);
- rectangle.move(-10,0);
- scaleColor(rectangle,1.1);
- break;
- case Keyboard::Right:
- rectangle.scale(1.1,1);
- rectangle.move(10,0);
- scaleColor(rectangle,0.9);
- break;
- }
- cout << "Rect at : " << rectangle.getPosition().x << ", "<< rectangle.getPosition().y << endl;
- }
- }
- }
- }
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement