Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Box2D/Box2D.h>
- #include <SFML/Graphics.hpp>
- #include "CPlayer.h"
- #define DEGTORAD 0.0174532925199432957f
- #define RADTODEG 57.295779513082320876f
- #include <iostream>
- using namespace std;
- int main(int argc, char** argv)
- {
- // Fenster öffnen
- sf::RenderWindow m_MainWindow;
- m_MainWindow.create(sf::VideoMode(1920, 1080), "Test Anwendung Box2D", sf::Style::Default);
- // Welt erstellen
- b2Vec2 m_Gravity(0.0f, 10.0f);
- b2World *m_World = new b2World(m_Gravity);
- // Sprite laden
- sf::Sprite m_Block;
- sf::Texture m_Block_Texture;
- sf::IntRect m_Block_Rect;
- m_Block_Texture.loadFromFile("Data/Graphics/block.png");
- m_Block_Rect.left = 0;
- m_Block_Rect.top = 0;
- m_Block_Rect.width = 64.0f;
- m_Block_Rect.height = 64.0f;
- m_Block.setTexture(m_Block_Texture);
- m_Block.setTextureRect(m_Block_Rect);
- m_Block.setOrigin(32.0f, 32.0f);
- // Body Template erstellen
- b2BodyDef m_dynamicBodyDef;
- m_dynamicBodyDef.type = b2_dynamicBody;
- m_dynamicBodyDef.position.Set(960 - 32, 0);
- // Body (Template1) erstellen
- b2Body *m_dynamicBody_1 = m_World->CreateBody(&m_dynamicBodyDef);
- m_dynamicBody_1->SetGravityScale(1);
- // Shape Template erstellen
- b2PolygonShape m_polygoneShape;
- m_polygoneShape.SetAsBox(1.28, 1.28);
- // Fixture Template erstellen
- b2FixtureDef m_fixtureDef;
- m_fixtureDef.shape = &m_polygoneShape;
- m_fixtureDef.density = 1;
- m_dynamicBody_1->CreateFixture(&m_fixtureDef);
- // EdgeBody Def
- b2BodyDef m_edgeBodyDef;
- m_edgeBodyDef.type = b2_staticBody;
- m_edgeBodyDef.position.Set(0, 0);
- b2Body *m_edgeBody = m_World->CreateBody(&m_edgeBodyDef);
- // Edge Shape
- b2EdgeShape m_EdgeShape;
- m_EdgeShape.Set(b2Vec2(0, 700), b2Vec2(1920, 700));
- // Fixture Template static erstellen
- b2FixtureDef m_edgeFixtureDef;
- m_edgeFixtureDef.shape = &m_EdgeShape;
- m_edgeBody->CreateFixture(&m_edgeFixtureDef);
- float32 timeStep = 1.0f / 60.0f;
- int32 velocityIterations = 6;
- int32 positionIterations = 2;
- // Main Loop
- while (m_MainWindow.isOpen())
- {
- m_MainWindow.clear();
- // Events abfragen
- sf::Event m_Event;
- if (m_MainWindow.pollEvent(m_Event))
- {
- if (m_Event.type == sf::Event::Closed)
- return 0;
- }
- // World Step machen
- m_World->Step(timeStep, velocityIterations, positionIterations);
- m_Block.setPosition(m_dynamicBody_1->GetPosition().x, m_dynamicBody_1->GetPosition().y);
- m_Block.setRotation(m_dynamicBody_1->GetAngle() * RADTODEG);
- m_MainWindow.draw(m_Block);
- float32 x1, y1, x2, y2;
- x1 = m_dynamicBody_1->GetPosition().x;
- y1 = m_dynamicBody_1->GetPosition().y;
- //cout << m_dynamicBody_1->GetPosition().x << endl << m_dynamicBody_1->GetPosition().y << endl << m_Block.getPosition().x << endl << m_Block.getPosition().y << endl;
- //cout << m_edgeBody->GetPosition().x << endl << m_edgeBody->GetPosition().y << endl;
- // Alles anzeigen
- m_MainWindow.display();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement