This commit is contained in:
MihailRis
2024-01-10 16:41:51 +03:00
parent e2bb7a34aa
commit 9760cff8f4
10 changed files with 76 additions and 85 deletions
+15 -8
View File
@@ -18,16 +18,15 @@ const float JUMP_FORCE = 8.0f;
Player::Player(glm::vec3 position, float speed) :
speed(speed),
chosenItem(1) {
camera = new Camera(position, glm::radians(90.0f));
currentViewCamera = camera;
SPCamera = new Camera(position, glm::radians(90.0f));
TPCamera = new Camera(position, glm::radians(90.0f));
hitbox = new Hitbox(position, glm::vec3(0.3f,0.9f,0.3f));
chosenItem(0),
camera(new Camera(position, glm::radians(90.0f))),
spCamera(new Camera(position, glm::radians(90.0f))),
tpCamera(new Camera(position, glm::radians(90.0f))),
currentCamera(camera),
hitbox(new Hitbox(position, glm::vec3(0.3f,0.9f,0.3f))) {
}
Player::~Player(){
delete hitbox;
}
void Player::update(
@@ -75,7 +74,7 @@ void Player::update(
float vel = std::max(glm::length(hitbox->velocity * 0.25f), 1.0f);
int substeps = int(delta * vel * 1000);
substeps = std::min(100, std::max(1, substeps));
level->physics->step(level->chunks, hitbox,
level->physics->step(level->chunks, hitbox.get(),
delta, substeps,
crouch, flight ? 0.0f : 1.0f,
!noclip);
@@ -122,6 +121,14 @@ void Player::teleport(glm::vec3 position) {
hitbox->position = position;
}
void Player::setChosenItem(itemid_t id) {
chosenItem = id;
}
itemid_t Player::getChosenItem() const {
return chosenItem;
}
float Player::getSpeed() const {
return speed;
}
+10 -5
View File
@@ -1,6 +1,7 @@
#ifndef SRC_OBJECTS_PLAYER_H_
#define SRC_OBJECTS_PLAYER_H_
#include <memory>
#include <glm/glm.hpp>
#include "../voxels/voxel.h"
@@ -29,13 +30,14 @@ struct PlayerInput {
class Player {
float speed;
itemid_t chosenItem;
public:
Camera* camera, *SPCamera, *TPCamera, *currentViewCamera;
Hitbox* hitbox;
std::shared_ptr<Camera> camera, spCamera, tpCamera;
std::shared_ptr<Camera> currentCamera;
std::unique_ptr<Hitbox> hitbox;
bool flight = false;
bool noclip = false;
bool debug = false;
int chosenItem;
voxel selectedVoxel {0, 0};
glm::vec2 cam = {};
@@ -44,9 +46,12 @@ public:
~Player();
void teleport(glm::vec3 position);
float getSpeed() const;
void update(Level* level, PlayerInput& input, float delta);
void setChosenItem(itemid_t id);
itemid_t getChosenItem() const;
float getSpeed() const;
};
#endif /* SRC_OBJECTS_PLAYER_H_ */