Compare commits
4 commits
69b1f267ea
...
ae57c0b7d0
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ae57c0b7d0 | ||
![]() |
eac323b383 | ||
![]() |
0515005e54 | ||
![]() |
15b890ad55 |
|
@ -5,8 +5,7 @@
|
|||
|
||||
void Checkpoint::_bind_methods() {
|
||||
BIND_PROPERTY(Variant::VECTOR3, location);
|
||||
BIND_PROPERTY(Variant::BOOL, can_jump);
|
||||
BIND_PROPERTY(Variant::BOOL, can_bash);
|
||||
BIND_PROPERTY(Variant::VECTOR3, camera_location);
|
||||
}
|
||||
|
||||
void Checkpoint::set_location(Transform3D location) {
|
||||
|
@ -17,32 +16,22 @@ Transform3D Checkpoint::get_location() const {
|
|||
return this->location;
|
||||
}
|
||||
|
||||
void Checkpoint::set_can_jump(bool can_jump) {
|
||||
this->can_jump = can_jump;
|
||||
void Checkpoint::set_camera_location(Transform3D location) {
|
||||
this->camera_location = location;
|
||||
}
|
||||
|
||||
bool Checkpoint::get_can_jump() const {
|
||||
return this->can_jump;
|
||||
}
|
||||
|
||||
void Checkpoint::set_can_bash(bool can_bash) {
|
||||
this->can_bash = can_bash;
|
||||
}
|
||||
|
||||
bool Checkpoint::get_can_bash() const {
|
||||
return this->can_bash;
|
||||
Transform3D Checkpoint::get_camera_location() const {
|
||||
return this->camera_location;
|
||||
}
|
||||
|
||||
void Checkpoint::load(PlayerBody *body) const {
|
||||
body->set_global_transform(this->location);
|
||||
body->set_can_jump(this->can_jump);
|
||||
// body->set_can_bash(this->can_bash);
|
||||
body->get_camera()->set_global_transform(this->camera_location);
|
||||
}
|
||||
|
||||
void Checkpoint::save(PlayerBody *body) {
|
||||
this->set_location(body->get_global_transform_interpolated());
|
||||
this->set_can_jump(body->get_can_jump());
|
||||
// self->set_can_bash(body->get_can_bash());
|
||||
this->set_camera_location(body->get_camera()->get_global_transform_interpolated());
|
||||
}
|
||||
|
||||
Ref<Checkpoint> Checkpoint::save_new(PlayerBody *body) {
|
||||
|
|
|
@ -13,16 +13,15 @@ class Checkpoint : public Resource {
|
|||
public:
|
||||
void set_location(Transform3D location);
|
||||
Transform3D get_location() const;
|
||||
void set_can_jump(bool can_jump);
|
||||
bool get_can_jump() const;
|
||||
void set_can_bash(bool can_bash);
|
||||
bool get_can_bash() const;
|
||||
void set_camera_location(Transform3D camera_location);
|
||||
Transform3D get_camera_location() const;
|
||||
|
||||
void load(PlayerBody *body) const;
|
||||
void save(PlayerBody *body);
|
||||
static Ref<Checkpoint> save_new(PlayerBody *body);
|
||||
private:
|
||||
Transform3D location{};
|
||||
Transform3D camera_location{};
|
||||
bool can_jump{false}, can_bash{false};
|
||||
};
|
||||
|
||||
|
|
|
@ -46,6 +46,9 @@ void PlayerBody::_notification(int what) {
|
|||
case NOTIFICATION_ENTER_TREE:
|
||||
this->enter_tree();
|
||||
return;
|
||||
case NOTIFICATION_READY:
|
||||
this->ready();
|
||||
return;
|
||||
case NOTIFICATION_PROCESS:
|
||||
this->process(this->get_process_delta_time());
|
||||
return;
|
||||
|
@ -61,6 +64,10 @@ void PlayerBody::enter_tree() {
|
|||
this->model = Object::cast_to<Node3D>(this->get_node(NodePath("character")));
|
||||
this->anim = Object::cast_to<AnimationPlayer>(this->get_node(NodePath("character/AnimationPlayer")));
|
||||
this->camera = Object::cast_to<Camera3D>(this->get_node(NodePath("Camera3D")));
|
||||
this->state = Object::cast_to<PlayerStateMachine>(this->get_node(NodePath("%PlayerStateMachine")));
|
||||
}
|
||||
|
||||
void PlayerBody::ready() {
|
||||
this->camera->set_fov(this->min_fov);
|
||||
this->last_checkpoint = Checkpoint::save_new(this);
|
||||
}
|
||||
|
@ -85,6 +92,8 @@ void PlayerBody::save_checkpoint() {
|
|||
|
||||
void PlayerBody::load_checkpoint() {
|
||||
this->last_checkpoint->load(this);
|
||||
this->force_update_transform();
|
||||
this->set_velocity(Vector3{});
|
||||
this->state->force_state<FallingState>();
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ class PlayerBody : public CharacterBody3D {
|
|||
static void _bind_methods();
|
||||
void _notification(int what);
|
||||
void enter_tree();
|
||||
void ready();
|
||||
void process(double delta);
|
||||
void physics_process(double delta);
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -36,6 +36,7 @@ target_speed = 25.0
|
|||
jump_impulse = Vector2(0.9, 5)
|
||||
|
||||
[node name="PlayerStateMachine" type="PlayerStateMachine" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.05124, 0)
|
||||
|
|
|
@ -27,31 +27,37 @@ window/vsync/vsync_mode=0
|
|||
move_left={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
|
||||
]
|
||||
}
|
||||
move_right={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
|
||||
]
|
||||
}
|
||||
move_forward={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
|
||||
]
|
||||
}
|
||||
move_back={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
|
||||
]
|
||||
}
|
||||
split_step={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":true,"script":null)
|
||||
]
|
||||
}
|
||||
jump={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
|
|
|
@ -150,6 +150,70 @@ transform = Transform3D(0.419484, 0.0507518, -0.906343, 1.17347e-07, 0.998436, 0
|
|||
[node name="Node3D169" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.952997, 0.103831, -0.284635, -0.108312, 0.994117, 1.04308e-07, 0.282961, 0.0308292, 0.958637, 145.181, 0.286187, 130.351)
|
||||
|
||||
[node name="Node3D173" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.952997, 0.103831, -0.284635, -0.108312, 0.994117, 1.04308e-07, 0.282961, 0.0308292, 0.958637, 168.889, 12.9213, 158.179)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D234" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.952997, 0.103831, -0.284635, -0.108312, 0.994117, 1.04308e-07, 0.282961, 0.0308292, 0.958637, 162.185, 12.9213, 137.723)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D237" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.952997, 0.103831, -0.284635, -0.108312, 0.994117, 1.04308e-07, 0.282961, 0.0308292, 0.958637, 185.523, 12.9213, 134.48)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D255" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.952997, 0.103831, -0.284635, -0.108312, 0.994117, 1.04308e-07, 0.282961, 0.0308292, 0.958637, 169.521, 12.9213, 113.706)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D238" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.952997, 0.103831, -0.284635, -0.108312, 0.994117, 1.04308e-07, 0.282961, 0.0308292, 0.958637, 206.013, 12.9213, 115.293)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D244" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.952997, 0.103831, -0.284635, -0.108312, 0.994117, 1.04308e-07, 0.282961, 0.0308292, 0.958637, 228.596, 12.9213, 107.531)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D174" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 191.303, 12.9213, 156.299)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D177" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 210.785, 12.9213, 155.892)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D213" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 229.302, 12.9213, 145.232)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D218" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 229.302, 12.9213, 145.232)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D219" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 209.497, 12.9213, 140.626)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D258" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 156.069, 12.9213, 94.6004)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D226" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 249.623, 12.9213, 148.498)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D233" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 237.032, 12.9213, 130.943)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D179" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 198.203, 6.57293, 166.993)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D180" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.725555, 0, 0.688165, 0, 1, 0, -0.688165, 0, 0.725555, 216.786, 6.57293, 165.119)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Node3D176" parent="level" instance=ExtResource("3_lj5yw")]
|
||||
transform = Transform3D(0.0886341, 0.0799352, 0.992852, -1.1595e-07, 0.996775, -0.0802511, -0.996065, 0.00711287, 0.0883483, 143.025, -0.200879, 148.057)
|
||||
|
||||
|
@ -1368,6 +1432,75 @@ transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561
|
|||
[node name="Evertre14" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -3.38254, 18.4091, 399.123)
|
||||
|
||||
[node name="Evertre33" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -17.2473, 11.2643, 443.769)
|
||||
|
||||
[node name="Evertre34" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -32.4798, 11.2643, 454.614)
|
||||
|
||||
[node name="Evertre35" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -12.378, 11.2643, 456.756)
|
||||
|
||||
[node name="Evertre36" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, 4.30957, 11.2643, 453.546)
|
||||
|
||||
[node name="Evertre37" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, 2.6091, 11.2643, 443.211)
|
||||
|
||||
[node name="Evertre39" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, 10.0671, 11.2643, 420.669)
|
||||
|
||||
[node name="Evertre38" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -8.8195, 11.2643, 447.976)
|
||||
|
||||
[node name="Evertre40" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, 15.4028, 11.2643, 446.201)
|
||||
|
||||
[node name="Evertre41" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, 22.8192, 11.2643, 428.729)
|
||||
|
||||
[node name="Evertre42" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -35.9533, 11.2643, 441.454)
|
||||
|
||||
[node name="Evertre43" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -45.0486, 11.2643, 457.168)
|
||||
|
||||
[node name="Evertre44" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -80.4115, 11.2643, 407.324)
|
||||
|
||||
[node name="Evertre51" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -60.7866, 11.2643, 414.031)
|
||||
|
||||
[node name="Evertre52" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -17.5432, 11.2643, 415.655)
|
||||
|
||||
[node name="Evertre53" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -36.6727, 11.2643, 415.34)
|
||||
|
||||
[node name="Evertre54" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, 17.3577, 11.2643, 411.762)
|
||||
|
||||
[node name="Evertre55" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -0.192945, 11.2643, 411.762)
|
||||
|
||||
[node name="Evertre45" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -95.6595, 11.2643, 394.926)
|
||||
|
||||
[node name="Evertre46" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -51.2812, 11.2643, 432.799)
|
||||
|
||||
[node name="Evertre47" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -58.7669, 11.2643, 444.695)
|
||||
|
||||
[node name="Evertre48" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -75.6998, 11.2643, 439.298)
|
||||
|
||||
[node name="Evertre49" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -66.3773, 11.2643, 431.034)
|
||||
|
||||
[node name="Evertre50" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -82.3773, 11.2643, 425.034)
|
||||
|
||||
[node name="Evertre28" parent="level" instance=ExtResource("8_l73gk")]
|
||||
transform = Transform3D(0.0847561, 0, 0.996402, 0, 1, 0, -0.996402, 0, 0.0847561, -19.7205, 18.4091, 397.907)
|
||||
|
||||
|
|
Loading…
Reference in a new issue