Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2eaed32b8a | |||
| 2e48db1a60 | |||
| bea9044aee | |||
| 62f61acc10 | |||
| 4e344cc02d | |||
| a0c4e305c5 |
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"sdk": {
|
||||||
|
"version": "11.0.100-preview.5.26302.115",
|
||||||
|
"allowPrerelease": true,
|
||||||
|
"rollForward": "latestPatch"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -220,7 +220,7 @@ script = ExtResource("2_oekxy")
|
|||||||
WalkAcceleration = 30.0
|
WalkAcceleration = 30.0
|
||||||
StoppingDeceleration = 50.0
|
StoppingDeceleration = 50.0
|
||||||
CancellationAcceleration = 50.0
|
CancellationAcceleration = 50.0
|
||||||
AirAcceleration = 9.0
|
AirAcceleration = 3.0
|
||||||
MaxFallSpeed = 50.0
|
MaxFallSpeed = 50.0
|
||||||
MaxRiseSpeed = 50.0
|
MaxRiseSpeed = 50.0
|
||||||
MaxRunSpeed = 12.0
|
MaxRunSpeed = 12.0
|
||||||
@@ -241,7 +241,7 @@ sprite_frames = ExtResource("2_wq5k4")
|
|||||||
animation = &"walk"
|
animation = &"walk"
|
||||||
|
|
||||||
[node name="Camera2D" type="Camera2D" parent="Player/CharacterBody2D" unique_id=1068565115]
|
[node name="Camera2D" type="Camera2D" parent="Player/CharacterBody2D" unique_id=1068565115]
|
||||||
zoom = Vector2(5, 5)
|
zoom = Vector2(2, 2)
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Player/CharacterBody2D" unique_id=436935745]
|
[node name="Label" type="Label" parent="Player/CharacterBody2D" unique_id=436935745]
|
||||||
offset_left = 22.0
|
offset_left = 22.0
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ config_version=5
|
|||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="WrplatGodot"
|
config/name="WrplatGodot"
|
||||||
|
config/version="0.1.38"
|
||||||
run/main_scene="uid://r2lb1ommvj6u"
|
run/main_scene="uid://r2lb1ommvj6u"
|
||||||
config/features=PackedStringArray("4.6", "C#", "Forward Plus")
|
config/features=PackedStringArray("4.6", "C#", "Forward Plus")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ public partial class PlayerPhysicsController : CharacterBody2D {
|
|||||||
private float MaxRunSpeed { get; set; } = 16f;
|
private float MaxRunSpeed { get; set; } = 16f;
|
||||||
[Export]
|
[Export]
|
||||||
private float MaxWalkSpeed { get; set; } = 8f;
|
private float MaxWalkSpeed { get; set; } = 8f;
|
||||||
|
[Export]
|
||||||
|
private float MaxAirSpeed { get; set; } = 16f;
|
||||||
|
[Export]
|
||||||
|
private float MaxDoubleJumpFallSpeed { get; set; } = 1f;
|
||||||
|
|
||||||
[ExportCategory("Objects")]
|
[ExportCategory("Objects")]
|
||||||
[Export]
|
[Export]
|
||||||
@@ -75,7 +79,7 @@ public partial class PlayerPhysicsController : CharacterBody2D {
|
|||||||
[Export]
|
[Export]
|
||||||
public float Deadzone { get; set; } = 0.1f;
|
public float Deadzone { get; set; } = 0.1f;
|
||||||
|
|
||||||
|
public float GetMinAccel(float delta) => CancellationAcceleration * delta;
|
||||||
|
|
||||||
|
|
||||||
private float _lv = 0.0f;
|
private float _lv = 0.0f;
|
||||||
@@ -135,8 +139,6 @@ public partial class PlayerPhysicsController : CharacterBody2D {
|
|||||||
float velx = (Velocity.X / UnitToPx);
|
float velx = (Velocity.X / UnitToPx);
|
||||||
float vely = (Velocity.Y / UnitToPx) + Gravity * (float)delta;
|
float vely = (Velocity.Y / UnitToPx) + Gravity * (float)delta;
|
||||||
|
|
||||||
if (Mathf.Abs(velx) < 0.1) velx = 0;
|
|
||||||
|
|
||||||
var grounded = this.IsOnFloor();
|
var grounded = this.IsOnFloor();
|
||||||
var coyoteGrounded = _timeOffGround < CoyoteTiming;
|
var coyoteGrounded = _timeOffGround < CoyoteTiming;
|
||||||
if (grounded || coyoteGrounded) {
|
if (grounded || coyoteGrounded) {
|
||||||
@@ -205,7 +207,7 @@ public partial class PlayerPhysicsController : CharacterBody2D {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Input.IsActionJustPressed("jump") && Mathf.Abs(vely) < 2) {
|
if (Input.IsActionJustPressed("jump") && Mathf.Abs(vely) < MaxDoubleJumpFallSpeed) {
|
||||||
EmitSignal(SignalName.OnJump, (int)JumpKind.Midair, this.IsOnFloor(), this.IsOnWall());
|
EmitSignal(SignalName.OnJump, (int)JumpKind.Midair, this.IsOnFloor(), this.IsOnWall());
|
||||||
vely = -_lv;
|
vely = -_lv;
|
||||||
}
|
}
|
||||||
@@ -219,16 +221,13 @@ public partial class PlayerPhysicsController : CharacterBody2D {
|
|||||||
else velx += autostop;
|
else velx += autostop;
|
||||||
}
|
}
|
||||||
|
|
||||||
var maxXSpeed = Input.IsActionPressed("run") ? MaxRunSpeed : MaxWalkSpeed;
|
var maxXSpeed = grounded ? Input.IsActionPressed("run") ? MaxRunSpeed : MaxWalkSpeed : MaxAirSpeed;
|
||||||
var maxYSpeed = vely > 0 ? MaxFallSpeed : MaxRiseSpeed;
|
var maxYSpeed = vely > 0 ? MaxFallSpeed : MaxRiseSpeed;
|
||||||
var (absvelx, absvely) = (Mathf.Abs(velx), Mathf.Abs(vely));
|
var (absvelx, absvely) = (Mathf.Abs(velx), Mathf.Abs(vely));
|
||||||
float xcancel = 0, ycancel = 0;
|
if (absvelx > maxXSpeed)
|
||||||
if (absvelx > maxXSpeed) xcancel = -Math.Sign(velx) * CancellationAcceleration * (float)delta;
|
velx = Mathf.Sign(velx) * Mathf.Max(absvelx - CancellationAcceleration * (float)delta, maxXSpeed);
|
||||||
if (absvely > maxYSpeed) ycancel = -Math.Sign(vely) * CancellationAcceleration * (float)delta;
|
if (absvely > maxYSpeed)
|
||||||
if (Mathf.Abs(xcancel) + 0.1 > absvelx) velx = 0;
|
vely = Mathf.Sign(vely) * Mathf.Max(absvely - CancellationAcceleration * (float)delta, maxYSpeed);
|
||||||
else velx += xcancel;
|
|
||||||
if (Mathf.Abs(ycancel) + 0.1 > absvely) vely = 0;
|
|
||||||
else vely += ycancel;
|
|
||||||
|
|
||||||
DebugTextLabel.Text =
|
DebugTextLabel.Text =
|
||||||
$"grounded: {grounded}\n" +
|
$"grounded: {grounded}\n" +
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
#nullable enable
|
#nullable enable
|
||||||
|
|
||||||
public class LevelPattern {
|
public class LevelPattern {
|
||||||
public TileMapPattern Level { get; }
|
public TileMapPattern Level { get; }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user