Fix groundDistance
This commit is contained in:
parent
69fd7af211
commit
459bf87869
@ -24,6 +24,8 @@ static ButtonElement *options;
|
||||
static void defaultInput(GLFWwindow *window, void *data) {
|
||||
if(Input::isKeyboardCaptured()) return;
|
||||
|
||||
// TODO: move input handling to controller class, add NoclipController
|
||||
|
||||
glm::vec3 direction = glm::vec3(0);
|
||||
|
||||
if(Input::getKeyState(keyForward) == GLFW_PRESS) {
|
||||
@ -52,6 +54,8 @@ static void defaultInput(GLFWwindow *window, void *data) {
|
||||
direction += glm::vec3(0,-1,0);
|
||||
}
|
||||
|
||||
kekData.player->controller->update();
|
||||
|
||||
direction = glm::normalize(direction);
|
||||
if(glm::length2(direction) > 0) {
|
||||
if(kekData.player->noclip) {
|
||||
@ -68,8 +72,6 @@ static void defaultInput(GLFWwindow *window, void *data) {
|
||||
if(jump) kekData.player->controller->jump();
|
||||
}
|
||||
}
|
||||
|
||||
kekData.player->controller->update();
|
||||
}
|
||||
|
||||
static void defaultKeyCallback(GLFWwindow *window, int key, int scancode, int action, int mods, void *data) {
|
||||
|
@ -30,10 +30,10 @@ static bool castPlayer(glm::vec3 pos, glm::vec3 delta, const btCollisionObject *
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool checkPlayerGrounded() {
|
||||
bool DefaultPlayerController::checkPlayerGrounded() {
|
||||
glm::vec3 point;
|
||||
glm::vec3 normal;
|
||||
bool onGround = castPlayer(kekData.player->getPosition(), glm::vec3(0,-1,0), nullptr, nullptr, &point, &normal);
|
||||
bool onGround = castPlayer(kekData.player->getPosition(), glm::vec3(0,-groundDistance,0), nullptr, nullptr, &point, &normal);
|
||||
// TODO: angle check
|
||||
return onGround;
|
||||
}
|
||||
@ -79,7 +79,7 @@ glm::vec3 DefaultPlayerController::move(glm::vec3 movement) {
|
||||
}
|
||||
|
||||
void DefaultPlayerController::jump() {
|
||||
velocity += glm::vec3(0, 10 * jumpHeight, 0);
|
||||
velocity += glm::vec3(0, 10 * jumpHeight, 0) * kekData.lastFrameTime;
|
||||
}
|
||||
|
||||
void DefaultPlayerController::update() {
|
||||
|
@ -6,11 +6,15 @@ namespace kek {
|
||||
|
||||
class DefaultPlayerController: public PlayerController {
|
||||
|
||||
protected:
|
||||
bool checkPlayerGrounded();
|
||||
|
||||
public:
|
||||
glm::vec3 gravity = glm::vec3(0,-9.81,0);
|
||||
float minSlideAngle = 5;
|
||||
float maxWalkAngle = 60;
|
||||
float jumpHeight = 1;
|
||||
float groundDistance = 0.01;
|
||||
|
||||
glm::vec3 velocity = glm::vec3(0);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user