SFML и C++ Уроки \ Разработка игр › Форумы › Логика игр › Вращение вокруг оси. › Ответ в теме: Вращение вокруг оси.
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
int main() { sf::Event evt; sf::Clock clock; sf::RenderWindow window(sf::VideoMode(800,600,32),"Test", sf::Style::Default); clock.restart(); sf::RectangleShape rect1(sf::Vector2f(20,20)), rect2(sf::Vector2f(10,10)); rect1.setOrigin(10,10), rect2.setOrigin(5,5); rect1.setPosition(400,300); float r = 80, a = 0, speed = 0.3; // Радиус вращения, угол, скорость. float t = 0; // Время while(window.isOpen()) { t = (float)clock.getElapsedTime().asMicroseconds()/1000, clock.restart(); while(window.pollEvent(evt)) if(evt.type == sf::Event::Closed) window.close(); rect2.setPosition(rect1.getPosition().x + r * cosf(a),rect1.getPosition().y + r * sinf(a)); a += PI/180*(speed*t); window.clear(); window.draw(rect1); window.draw(rect2); window.display(); } return 0; } |