#include <SFML\Graphics.hpp>
#include <Box2D\Box2D.h>
int main()
{
//Creo mi ventana
sf::RenderWindow window(sf::VideoMode(800, 600), "Hola Box2D");
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 );
//para crear un body se necesita de 4 pasos
//primer paso creamos el groundbody para ello necesitamos su definicion
b2BodyDef groundBodyDef;
groundBodyDef.position.Set( 0.f , -10.f );
//paso 2 : la definicion es pasada al objeto mundo de ground body
b2Body *groundBody = world.CreateBody( &groundBodyDef );
//paso 3 : creamos el polygono de ground y le damos setatbox para centrar en el origen
b2PolygonShape groundBox;
groundBox.SetAsBox( 50.f , 10.f );
//paso 4 creando la fixture
groundBody->CreateFixture( &groundBox , 0.f );
//Creo mi textura
sf::Texture textura;
textura.loadFromFile("box1.png");
//creo mi gameloop
while (window.isOpen())
{
//lo inicio en el gameloop.
world.Step(timeStep, velocityIterations, positionIterations);
//limpio la ventana
window.clear(sf::Color::White);
//Creo mi Sprite
sf::Sprite sprite;
sprite.setTexture( textura );
sprite.setOrigin(16.f, 16.f);
sprite.setPosition(groundBody->GetPosition().x, groundBody->GetPosition().y);
window.draw( sprite );
//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
viernes, 20 de marzo de 2015
GroundBox Box2D
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario