From 32d836cb88db783c807c228fa2932ddecc1a8d07 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Thu, 9 Aug 2018 00:39:14 +0500 Subject: Implemented Creative Flight --- src/World.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/World.cpp') diff --git a/src/World.cpp b/src/World.cpp index 718f54c..251890b 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -201,6 +201,23 @@ void World::UpdatePhysics(float delta) { entitiesMutex.lock(); for (auto& it : entities) { + if (it.isFlying) { + VectorF newPos = it.pos + VectorF(it.vel.x, it.vel.y, it.vel.z) * delta; + auto coll = testCollision(it.width, it.height, newPos); + if (coll.isCollide) { + it.vel = VectorF(0, 0, 0); + } + else { + it.pos = newPos; + } + + const float AirResistance = 10.0f; + VectorF resistForce = it.vel * AirResistance * delta * -1.0; + it.vel = it.vel + resistForce; + + continue; + } + { //Vertical velocity it.vel.y -= it.gravity * delta; VectorF newPos = it.pos + VectorF(0, it.vel.y, 0) * delta; -- cgit v1.2.3