#include <SFML\Graphics.hpp>
#include <Box2D\Box2D.h>
#define RAD 0.0174532925199432957f
int main()
{
//Creo mi ventana
sf::RenderWindow window(sf::VideoMode(800, 600), "Kinematic Body");
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);
bodyDefDynamic.angle = 0;
//definimos un bodydef para staticbody
b2BodyDef bodyDefStatic;
bodyDefStatic.type = b2_staticBody;
bodyDefStatic.position.Set(100.f, 450.f);
bodyDefStatic.angle = 0;
//definimos un bodydef para kinematicbody
b2BodyDef bodyDefKinematic;
bodyDefKinematic.type = b2_kinematicBody;
bodyDefKinematic.position.Set(150.f, 250.f);
bodyDefKinematic.angle = 1;
//creamos los body
b2Body *dynamicBody = world.CreateBody(&bodyDefDynamic);
b2Body *staticBody = world.CreateBody(&bodyDefStatic);
b2Body *kinematicBody = world.CreateBody(&bodyDefKinematic);
//se crea un box shape para dynamicBox
b2PolygonShape dynamicBox;
dynamicBox.SetAsBox(1.f, 1.f);
//se crea un box shape para staticBox
b2PolygonShape staticBox;
staticBox.SetAsBox(1.f, 1.f);
//se crea un box shape para kinematicBox
b2PolygonShape kinematicBox;
kinematicBox.SetAsBox(1.f, 1.f);
//Creamos un fixture para darle mas dinamismo
b2FixtureDef fixtureDefDynamic;
fixtureDefDynamic.shape = &dynamicBox;
fixtureDefDynamic.density = 1.f;
b2FixtureDef fixtureDefStatic;
fixtureDefStatic.shape = &staticBox;
fixtureDefStatic.density = 1.f;
b2FixtureDef fixtureDefKinematic;
fixtureDefKinematic.shape = &kinematicBox;
fixtureDefKinematic.density = 1.f;
//Creamos la fixture
dynamicBody->CreateFixture(&fixtureDefDynamic);
staticBody->CreateFixture(&fixtureDefStatic);
kinematicBody->CreateFixture(&fixtureDefKinematic);
kinematicBody->SetLinearVelocity(b2Vec2(0, 10 ));
kinematicBody->SetAngularVelocity(360 * RAD);
//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(dynamicBody->GetPosition().x, dynamicBody->GetPosition().y);
window.draw( sprite );
sf::Sprite sprite1;
sprite1.setTexture(textura);
sprite1.setOrigin(16.f, 16.f);
sprite1.setPosition(staticBody->GetPosition().x, staticBody->GetPosition().y);
window.draw(sprite1);
sf::Sprite sprite2;
sprite2.setTexture(textura);
sprite2.setOrigin(16.f, 16.f);
sprite2.setPosition(kinematicBody->GetPosition().x, kinematicBody->GetPosition().y);
window.draw(sprite2);
//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
KinematicBody en Box2D
Estableciendo propiedades a body
#include <SFML\Graphics.hpp>
#include <Box2D\Box2D.h>
#define RAD 0.0174532925199432957f
int main()
{
//Creo mi ventana
sf::RenderWindow window(sf::VideoMode(800, 600), "Dynamic Body");
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
b2BodyDef bodyDef;
bodyDef.type = b2_dynamicBody;
bodyDef.position.Set( 100.f , 200.f );
bodyDef.angle = 0;
b2Body *body = world.CreateBody( &bodyDef );
//esto cambia la posicion y el angulo del body
body->SetTransform(b2Vec2(200, 300), 1);
//Cambiamos la velocidad lineal y la velocidad del angulo
body->SetLinearVelocity( b2Vec2( -5 , -5 ) );
body->SetAngularVelocity( -90 * RAD );
//se crea un box shape
b2PolygonShape dynamicBox;
dynamicBox.SetAsBox( 1.f , 1.f );
//Creamos un fixture para darle mas dinamismo
b2FixtureDef fixtureDef;
fixtureDef.shape = &dynamicBox;
fixtureDef.density = 1.f;
//Creamos la fixture
body->CreateFixture(&fixtureDef);
//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(body->GetPosition().x, body->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;
}
viernes, 20 de marzo de 2015
WebBrowser Windows Forms
1.- Creamos un nuevo proyecto en Windows Forms y buscamos en la parte de controles WebBrowser y arrastraremos al form, se recomienda ampliar el form para que podamos visualizar ya que nuestro form hará la función de ser un visualizador de paginas web.
2.- Una vez insertado no se visualizar de momento, tendremos que indicarle que pagina mostrara en mi caso pondré la url de mi blog personal en la parte de propiedades de WebBrowser, buscamos la parte de url y lo colocaremos ahí en mi caso http://christiankennyportafoliopersonal.blogspot.mx/.
2.- Una vez insertado no se visualizar de momento, tendremos que indicarle que pagina mostrara en mi caso pondré la url de mi blog personal en la parte de propiedades de WebBrowser, buscamos la parte de url y lo colocaremos ahí en mi caso http://christiankennyportafoliopersonal.blogspot.mx/.
Suscribirse a:
Entradas (Atom)
