11 m_groundBody =
nullptr;
15 Terrain::Terrain(b2World* world, sf::RenderWindow& window,
config::sTerrain terrainParam,
int WINDOW_X_PX,
double bodyLength){
16 m_bodyLength = bodyLength;
17 m_groundBody =
nullptr;
18 if(terrainParam.v_angle > 0){
19 m_angle = terrainParam.v_angle;
20 m_width = tan(terrainParam.v_angle)*2*terrainParam.v_height;
21 m_width = m_width * bodyLength;
24 m_angle = atan2(terrainParam.v_height, terrainParam.v_width/2);
25 m_width = terrainParam.v_width * bodyLength;
28 m_height = terrainParam.v_height * bodyLength;
29 m_runaway = terrainParam.
runaway * bodyLength;
31 m_M_TO_PX = WINDOW_X_PX / (m_width);
39 m_bodyLength = bodyLength;
40 if(terrainParam.v_angle > 0){
41 m_angle = terrainParam.v_angle;
42 m_width = tan(terrainParam.v_angle)*2*terrainParam.v_height;
43 m_width = m_width * bodyLength;
46 m_angle = atan2(terrainParam.v_height, terrainParam.v_width/2);
47 m_width = terrainParam.v_width * bodyLength;
50 m_height = terrainParam.v_height * bodyLength;
51 m_runaway = terrainParam.
runaway * bodyLength;
53 m_M_TO_PX = WINDOW_X_PX / (2*m_runaway);
54 printf(
"m_M_TO_PX parent: %f, \n", m_M_TO_PX);
60 BodyDef.position = b2Vec2(0, 0);
61 BodyDef.type = b2_staticBody;
62 m_groundBody = world->CreateBody(&BodyDef);
64 b2EdgeShape edgeShape;
67 edgeShape.Set( b2Vec2(0,m_posY), b2Vec2(3*m_runaway,m_posY) );
68 ground.shape = &edgeShape;
69 m_groundBody->CreateFixture(&ground);
74 sf::VertexArray lines(sf::LinesStrip, 2);
75 lines[0].position = sf::Vector2f(0, m_posY*m_M_TO_PX);
76 lines[1].position = sf::Vector2f(2*m_runaway*m_M_TO_PX, m_posY*m_M_TO_PX);
78 lines[0].color = sf::Color::Black;
79 lines[1].color = sf::Color::Black;
virtual e_terrain_type getType()
virtual b2Vec2 getTopRightCorner()
Implementation of the Terrain class.
virtual void drawBody(sf::RenderWindow &window)
virtual void createBody(b2World *world)
virtual b2Vec2 getBottom()
virtual b2Vec2 getTopLeftCorner()
virtual void create(b2World *world, sf::RenderWindow &window, config::sTerrain terrainParam, int WINDOW_X_PX, double bodyLength)