diff --git a/SQCSim2021/player.cpp b/SQCSim2021/player.cpp index 11fba10..f0e00c2 100644 --- a/SQCSim2021/player.cpp +++ b/SQCSim2021/player.cpp @@ -103,7 +103,14 @@ void Player::ApplyPhysics(Vector3f input, World* world, float elapsedTime, Audio bt1 = world->BlockAt(GetPosition().x + input.x, GetPosition().y, GetPosition().z); bt2 = world->BlockAt(GetPosition().x + input.x, GetPosition().y - 0.9f, GetPosition().z); bt3 = world->BlockAt(GetPosition().x + input.x, GetPosition().y - 1.7f, GetPosition().z); - if (bt1 != BTYPE_AIR || bt2 != BTYPE_AIR || bt3 != BTYPE_AIR) { + if (bt1 == BTYPE_AIR && bt2 != BTYPE_AIR && bt3 != BTYPE_AIR) { + if (input.x > 0) + input.x = m_velocity.x = 0.5f; + else + input.x = m_velocity.x = -0.5f; + m_velocity.y = 0.3; + m_velocity.z *= .5f; + } else if (bt1 != BTYPE_AIR || bt2 != BTYPE_AIR || bt3 != BTYPE_AIR) { input.x = m_velocity.x = 0; m_velocity.z *= .5f; } @@ -111,7 +118,14 @@ void Player::ApplyPhysics(Vector3f input, World* world, float elapsedTime, Audio bt1 = world->BlockAt(GetPosition().x, GetPosition().y, GetPosition().z + input.z); bt2 = world->BlockAt(GetPosition().x, GetPosition().y - 0.9f, GetPosition().z + input.z); bt3 = world->BlockAt(GetPosition().x, GetPosition().y - 1.7f, GetPosition().z + input.z); - if (bt1 != BTYPE_AIR || bt2 != BTYPE_AIR || bt3 != BTYPE_AIR) { + if (bt1 == BTYPE_AIR && bt2 != BTYPE_AIR && bt3 != BTYPE_AIR) { + if (input.z > 0) + input.z = m_velocity.z = 0.5f; + else + input.z = m_velocity.z = -0.5f; + m_velocity.y = 0.3; + m_velocity.x *= .5f; + } else if (bt1 != BTYPE_AIR || bt2 != BTYPE_AIR || bt3 != BTYPE_AIR) { input.z = m_velocity.z = 0; m_velocity.x *= .5f; }