#include <SFML\Graphics.hpp> #include <Box2D\Box2D.h> #define RAD 0.0174532925199432957f int main() { //Creo mi ventana sf::RenderWindow window(sf::VideoMode(800, 600), "Polygon Shape"); window.setFramerateLimit( 60 ); //para empezar la simulacion del mundo con esto simula la fisica float32 timeStep = 1.0f / 60.f; int32 velocityIterations = 8; int32 positionIterations = 3; //defino mi vector de gravedad b2Vec2 gravity( 0.f , 10.f ); //creo mi mundo b2World world( gravity ); //definimos un bodydef para dynamicbody b2BodyDef bodyDefDynamic; bodyDefDynamic.type = b2_dynamicBody; bodyDefDynamic.position.Set(150.f, 50.f); //definimos un bodydef para dynamicbody b2BodyDef bodyDefDynamic1; bodyDefDynamic1.type = b2_dynamicBody; bodyDefDynamic1.position.Set(150.f, 400.f); //creamos los body b2Body *dynamicBody = world.CreateBody(&bodyDefDynamic); b2Body *dynamicBody1 = world.CreateBody(&bodyDefDynamic1); //se crea un circleshape b2CircleShape circle; circle.m_p.Set(0, 0); circle.m_radius = 1; //Se crea el polygonshape b2PolygonShape rect; rect.SetAsBox(2, 1); //Creamos un fixture para darle mas dinamismo b2FixtureDef fixtureDefDynamic; fixtureDefDynamic.shape = &circle; //Creamos un fixture para darle mas dinamismo b2FixtureDef fixtureDefDynamic1; fixtureDefDynamic1.shape = ▭ //Creamos la fixture dynamicBody->CreateFixture(&fixtureDefDynamic); dynamicBody1->CreateFixture(&fixtureDefDynamic1); //creo el circulo en SFML sf::CircleShape circulo(100.f); circulo.setFillColor(sf::Color::Red); //creo el rectangulo en SFML sf::RectangleShape rectangulo( sf :: Vector2f( 200.f , 80.f ) ); rectangulo.setFillColor(sf::Color::Cyan); //creo mi gameloop while (window.isOpen()) { //lo inicio en el gameloop. world.Step(timeStep, velocityIterations, positionIterations); //limpio la ventana window.clear(sf::Color::White); circulo.setPosition(dynamicBody->GetPosition().x, dynamicBody->GetPosition().y); rectangulo.setPosition(dynamicBody1->GetPosition().x, dynamicBody1->GetPosition().y); window.draw(circulo); window.draw( rectangulo ); //mostrar en pantalla window.display(); sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); } } return 0; }
Herramientas Para el Desarrollo de Videojuegos y Lenguajes de Programación en Español
miércoles, 25 de marzo de 2015
Polygon Shape en Box2D
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario