Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fffd8c947b | |||
| a1d57d6a1a |
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -102,7 +102,6 @@ player = NodePath("../Player")
|
||||
pause = ExtResource("10_0ari0")
|
||||
|
||||
[node name="TutorialController" type="Control" parent="."]
|
||||
visible = false
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
@@ -375,10 +374,9 @@ shadow_opacity = 0.95
|
||||
shadow_blur = 2.435
|
||||
|
||||
[node name="Player" parent="." node_paths=PackedStringArray("TutorialWeaponTarget") instance=ExtResource("1_2vsi6")]
|
||||
transform = Transform3D(0.054514527, 0, -0.9985129, 0, 1, 0, 0.9985129, 0, 0.054514527, -6, 75.5, -13.5)
|
||||
transform = Transform3D(0.054514527, 0, -0.9985129, 0, 1, 0, 0.9985129, 0, 0.054514527, 0, -132.75, 118)
|
||||
collision_layer = 17
|
||||
TutorialWeaponTarget = NodePath("../PlacedTutorialWeapon/WeaponLocationTarget")
|
||||
TutorialDone = true
|
||||
AccelerationAir = 1.5
|
||||
|
||||
[node name="DebugLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
@@ -69,6 +69,7 @@ Weight = 4.0
|
||||
MantleTime = 0.3
|
||||
MantlePath = ExtResource("2_6lejt")
|
||||
CoyoteTime = 0.3
|
||||
InputBufferFrames = 5
|
||||
SimpleJumpStartVelocity = 6.0
|
||||
SimpleJumpHangTimeInFrames = 1
|
||||
SimpleJumpGravityLesseningFactor = 2.0
|
||||
|
||||
@@ -89,6 +89,8 @@ public partial class PlayerController : CharacterBody3D
|
||||
[ExportGroup("Jump")]
|
||||
[Export(PropertyHint.Range, "0,1,0.01")]
|
||||
public float CoyoteTime { get; set; } = 0.2f;
|
||||
[Export(PropertyHint.Range, "0,10,1,or_greater")]
|
||||
public int InputBufferFrames { get; set; } = 3;
|
||||
|
||||
// Simple jump
|
||||
[ExportSubgroup("Simple jump")]
|
||||
@@ -229,6 +231,8 @@ public partial class PlayerController : CharacterBody3D
|
||||
private Transition _onLeaveWallFromRunCoyote;
|
||||
private Transition _onLeaveWallFromRun;
|
||||
|
||||
private int _currentJumpBufferFrames = 0;
|
||||
|
||||
private float _playerHeight;
|
||||
private float _playerRadius;
|
||||
private bool _isJumpInputPressed;
|
||||
@@ -466,6 +470,12 @@ public partial class PlayerController : CharacterBody3D
|
||||
|
||||
if (_simpleDashCooldownTimer.IsStopped())
|
||||
_simpleDashCooldownTimer.Start();
|
||||
|
||||
if (_currentJumpBufferFrames > 0)
|
||||
{
|
||||
_currentJumpBufferFrames = 0;
|
||||
PerformJump();
|
||||
}
|
||||
}
|
||||
|
||||
public void DashCooldownTimeout()
|
||||
@@ -639,7 +649,13 @@ public partial class PlayerController : CharacterBody3D
|
||||
// Jump
|
||||
public void OnInputJumpStarted()
|
||||
{
|
||||
_currentJumpBufferFrames = InputBufferFrames;
|
||||
_isJumpInputPressed = true;
|
||||
PerformJump();
|
||||
}
|
||||
|
||||
public void PerformJump()
|
||||
{
|
||||
if (MantleSystem.IsMantlePossible)
|
||||
{
|
||||
_playerState.SendEvent("mantle");
|
||||
@@ -870,8 +886,8 @@ public partial class PlayerController : CharacterBody3D
|
||||
SetVerticalVelocity(Velocity.Y - 2.0f);
|
||||
}
|
||||
|
||||
// Move back to Airborne state management when starting to go down again
|
||||
if (_framesSinceJumpAtApex > hangFrames)
|
||||
// Move back to Airborne state when starting to go down again or if input isn't held anymore (buffered jump)
|
||||
if (_framesSinceJumpAtApex > hangFrames || !_isJumpInputPressed)
|
||||
_playerState.SendEvent("jump_ended");
|
||||
}
|
||||
public void HandleSimpleJump(float delta)
|
||||
@@ -1395,6 +1411,8 @@ public partial class PlayerController : CharacterBody3D
|
||||
///////////////////////////
|
||||
public override void _PhysicsProcess(double delta)
|
||||
{
|
||||
if (_currentJumpBufferFrames > 0) _currentJumpBufferFrames -= 1;
|
||||
|
||||
LookAround(delta);
|
||||
CameraModifications((float) delta);
|
||||
HandleStairs((float) delta);
|
||||
|
||||
Reference in New Issue
Block a user