Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <converter.hpp>
- #include <box2d/box2d.h>
- #include <SFML/Graphics.hpp>
- #include <iostream>
- #include <list>
- int main()
- {
- int height = 800, width = 800;
- sf::RenderWindow window(sf::VideoMode(800, 600, 32), "04_Basic");
- window.setFramerateLimit(60);
- b2Vec2 gravity(0.f, 9.8f);
- b2World world(gravity);
- b2BodyDef bodyDef;
- bodyDef.position.Set(converter::pixel_to_meters(400.f), converter::pixel_to_meters(10.f));
- bodyDef.type = b2_dynamicBody;
- b2PolygonShape b2shape;
- b2shape.SetAsBox(converter::pixel_to_meters(40.f / 2.0f), converter::pixel_to_meters(40.f / 2.0f));
- b2FixtureDef fixtureDef;
- fixtureDef.density = 1.0;
- fixtureDef.friction = 0.4;
- fixtureDef.restitution = 0.5;
- fixtureDef.shape = &b2shape;
- b2Body* res = world.CreateBody(&bodyDef);
- res->CreateFixture(&fixtureDef);
- sf::RectangleShape shape(sf::Vector2f(40.0f, 40.0f));
- shape.setOrigin(40.f / 2.0f, 40.f / 2.0f);
- shape.setPosition(sf::Vector2f(400.f, 10.f));
- shape.setFillColor(sf::Color::Blue);
- res->SetUserData(&shape);
- while (window.isOpen())
- {
- sf::Event event;
- while (window.pollEvent(event))
- {
- sf::Event event;
- while (window.pollEvent(event))
- {
- if (event.type == sf::Event::Closed)//Close window
- window.close();
- }
- if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- int x = sf::Mouse::getPosition(window).x;
- int y = sf::Mouse::getPosition(window).y;
- }
- world.Step(1.0f / 60.0f, int32(8), int32(3));
- window.clear();
- shape.setPosition(converter::meters_to_pixels(res->GetPosition().x), converter::meters_to_pixels(res->GetPosition().y));
- shape.setRotation(converter::rad_to_deg<double>(res->GetAngle()));
- window.draw(shape);
- window.display();
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement