// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #include "CharacterController3D.hpp" using namespace Dawn; CharacterController3D::CharacterController3D(std::weak_ptr item) : SceneItemComponent(item) { } void CharacterController3D::onStart() { useEvent([&](float_t delta){ auto item = this->item.lock(); // Friction velocity -= glm::vec3(velocity.x, 0, velocity.z) * friction * delta; // Gravity velocity += this->gravity * delta; auto myCollider = item->getComponent(); auto colliders = getScene()->findComponents(); auto itCollider = colliders.begin(); // while(itCollider != colliders.end()) { // (*itCollider)-> // ++itCollider; // } // Move / Update item->setLocalPosition(item->getLocalPosition() + (velocity * delta)); }, getScene()->eventSceneUpdate); }