#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