#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