jump horizontal boost, no splat when landing on floor, and fast-fall experiments

This commit is contained in:
Haze Weathers 2025-03-15 05:56:21 -04:00
parent 5cf87d8bb7
commit 330ed25153
3 changed files with 15 additions and 5 deletions

View file

@ -24,11 +24,11 @@ texture = ExtResource("1_h5jcm")
[node name="TileMap" type="TileMapLayer" parent="."]
z_index = -100
use_parent_material = true
tile_map_data = PackedByteArray("AAAAAAsAAAAAAAAAAAABAAsAAAAAAAAAAAACAAsAAAAAAAAAAAAHAAsAAAAAAAAAAAAIAAsAAAAAAAAAAAAJAAsAAAAAAAAAAAAKAAsAAAAAAAAAAAALAAsAAAAAAAAAAAANAAsAAAAAAAAAAAAOAAsAAAAAAAAAAAAPAAsAAAAAAAAAAAAQAAsAAAAAAAAAAAARAAsAAAAAAAAAAAADAAsAAAAAAAAAAAAEAAsAAAAAAAAAAAAFAAsAAAAAAAAAAAAGAAsAAAAAAAAAAAAMAAsAAAAAAAAAAAAFAAoAAAAAAAAAAAAGAAoAAAAAAAAAAAAGAAkAAAAAAAAAAAAHAAkAAAAAAAAAAAAIAAkAAAAAAAAAAAAJAAkAAAAAAAAAAAAKAAkAAAAAAAAAAAALAAkAAAAAAAAAAAAMAAkAAAAAAAAAAAALAAoAAAAAAAAAAAAKAAoAAAAAAAAAAAAJAAoAAAAAAAAAAAAIAAoAAAAAAAAAAAAHAAoAAAAAAAAAAAAMAAoAAAAAAAAAAAANAAoAAAAAAAAAAAAOAAoAAAAAAAAAAAAPAAoAAAAAAAAAAAAPAAkAAAAAAAAAAAAQAAkAAAAAAAAAAAAQAAgAAAAAAAAAAAAQAAcAAAAAAAAAAAAQAAYAAAAAAAAAAAARAAcAAAAAAAAAAAAQAAoAAAAAAAAAAAARAAkAAAAAAAAAAAARAAgAAAAAAAAAAAARAAoAAAAAAAAAAAARAAYAAAAAAAAAAAARAAUAAAAAAAAAAAARAAQAAAAAAAAAAAAQAAQAAAAAAAAAAAAQAAUAAAAAAAAAAAAFAAkAAAAAAAAAAAAEAAkAAAAAAAAAAAADAAkAAAAAAAAAAAACAAkAAAAAAAAAAAABAAkAAAAAAAAAAAABAAoAAAAAAAAAAAACAAoAAAAAAAAAAAADAAoAAAAAAAAAAAAEAAoAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAkAAAAAAAAAAAABAAgAAAAAAAAAAAABAAcAAAAAAAAAAAABAAYAAAAAAAAAAAABAAUAAAAAAAAAAAABAAQAAAAAAAAAAAABAAMAAAAAAAAAAAABAAIAAAAAAAAAAAAKAAgAAAAAAAAAAAAKAAcAAAAAAAAAAAALAAcAAAAAAAAAAAALAAgAAAAAAAAAAAANAAkAAAAAAAAAAAAOAAkAAAAAAAAAAAA=")
tile_map_data = PackedByteArray("AAAAAAsAAAAAAAAAAAABAAsAAAAAAAAAAAACAAsAAAAAAAAAAAAHAAsAAAAAAAAAAAAIAAsAAAAAAAAAAAAJAAsAAAAAAAAAAAAKAAsAAAAAAAAAAAALAAsAAAAAAAAAAAANAAsAAAAAAAAAAAAOAAsAAAAAAAAAAAAPAAsAAAAAAAAAAAAQAAsAAAAAAAAAAAARAAsAAAAAAAAAAAADAAsAAAAAAAAAAAAEAAsAAAAAAAAAAAAFAAsAAAAAAAAAAAAGAAsAAAAAAAAAAAAMAAsAAAAAAAAAAAAFAAoAAAAAAAAAAAAGAAoAAAAAAAAAAAAGAAkAAAAAAAAAAAAHAAkAAAAAAAAAAAAIAAkAAAAAAAAAAAAJAAkAAAAAAAAAAAAKAAkAAAAAAAAAAAALAAkAAAAAAAAAAAAMAAkAAAAAAAAAAAALAAoAAAAAAAAAAAAKAAoAAAAAAAAAAAAJAAoAAAAAAAAAAAAIAAoAAAAAAAAAAAAHAAoAAAAAAAAAAAAMAAoAAAAAAAAAAAANAAoAAAAAAAAAAAAOAAoAAAAAAAAAAAAPAAoAAAAAAAAAAAAPAAkAAAAAAAAAAAAQAAkAAAAAAAAAAAAQAAoAAAAAAAAAAAARAAkAAAAAAAAAAAARAAoAAAAAAAAAAAAFAAkAAAAAAAAAAAAEAAkAAAAAAAAAAAADAAkAAAAAAAAAAAACAAkAAAAAAAAAAAABAAkAAAAAAAAAAAABAAoAAAAAAAAAAAACAAoAAAAAAAAAAAADAAoAAAAAAAAAAAAEAAoAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAkAAAAAAAAAAAABAAgAAAAAAAAAAAABAAcAAAAAAAAAAAABAAYAAAAAAAAAAAABAAUAAAAAAAAAAAABAAQAAAAAAAAAAAABAAMAAAAAAAAAAAABAAIAAAAAAAAAAAANAAkAAAAAAAAAAAAOAAkAAAAAAAAAAAA=")
tile_set = ExtResource("2_dj7w1")
[node name="Lashy" parent="." instance=ExtResource("4_gykx6")]
position = Vector2(32, 144)
position = Vector2(8, 96)
launch_power = 300.0
idle_radius = 6.0
@ -36,7 +36,7 @@ idle_radius = 6.0
position = Vector2(120, 144)
[node name="Spring" parent="." instance=ExtResource("6_tlqas")]
position = Vector2(72, 144)
position = Vector2(32, 72)
[node name="RotoBoy" parent="." instance=ExtResource("7_j1102")]
position = Vector2(240, 40)

View file

@ -10,7 +10,9 @@ extends CharacterBody2D
@export_group("Air Movement")
@export var gravity: float
@export var fast_gravity: float
@export var jump_power: float
@export var jump_horizontal_boost: float
@export var splat_launch_power: float
@export var splat_offset: float
@export var chomp_vault_impulse: Vector2
@ -90,6 +92,9 @@ func _apply_turn_acceleration(delta: float) -> void:
#region Falling
func _apply_gravity(delta: float) -> void:
if input_dir.y > 0.0:
velocity.y += fast_gravity * delta
else:
velocity.y += gravity * delta
#endregion
@ -97,6 +102,7 @@ func _apply_gravity(delta: float) -> void:
#region Jumping
func _start_jump() -> void:
velocity.y = -jump_power
velocity.x += input_dir.x * jump_horizontal_boost
#endregion
@ -135,9 +141,11 @@ func _face_towards_velocity(_delta: float) -> void:
func _check_for_splat(delta: float) -> void:
var col = move_and_collide(_last_velocity * delta, true)
if col:
_splat_normal = col.get_normal()
if _splat_normal.dot(Vector2.UP) > 0.5:
return
velocity = Vector2.ZERO
global_position += col.get_travel()
_splat_normal = col.get_normal()
var angle = col.get_normal().angle()
if graphics.scale.x > 0.0:
angle += PI

View file

@ -118,7 +118,9 @@ max_run_speed = 100.0
turn_acceleration = 300.0
stopping_force = 250.0
gravity = 450.0
fast_gravity = 675.0
jump_power = 180.0
jump_horizontal_boost = 25.0
splat_launch_power = 240.0
splat_offset = 6.0
chomp_vault_impulse = Vector2(60, -60)