started fixing hud to prevent crosshair from wobbling

This commit is contained in:
Derek
2025-03-18 08:35:10 -05:00
parent 99cfc9dde2
commit d17bc56ca2
12 changed files with 148 additions and 113 deletions

View File

@@ -16,18 +16,19 @@ var crosshair_target
@onready var level_control = get_tree().current_scene
@onready var player = level_control.player
@onready var stamina_bar: TextureProgressBar = $StaminaBar
@onready var stamina_bar_2: ProgressBar = $StaminaBar2
@onready var health_bar: ProgressBar = $HealthBar
@onready var ammo_counter: HBoxContainer = $GunInfo/VBoxContainer/AmmoCounter
@onready var gun_name: Label = $"GunInfo/VBoxContainer/Gun Name"
@onready var ammo_current: Label = $GunInfo/VBoxContainer/AmmoCounter/AmmoCurrent
@onready var ammo_reserve: Label = $GunInfo/VBoxContainer/AmmoCounter/AmmoReserve
@onready var gun_info: MarginContainer = $GunInfo
@onready var money: Label = $Money
@onready var crosshair: TextureRect = $Crosshair
@onready var crosshair_center: TextureRect = $CrosshairCenter
@onready var stamina_bar: TextureProgressBar = $StaticItems/StaminaBar
@onready var stamina_bar_2: ProgressBar = $StaticItems/StaminaBar2
@onready var health_bar: ProgressBar = $WobbleItems/HealthBar
@onready var ammo_counter: HBoxContainer = $WobbleItems/GunInfo/VBoxContainer/AmmoCounter
@onready var gun_name: Label = $"WobbleItems/GunInfo/VBoxContainer/Gun Name"
@onready var ammo_current: Label = $WobbleItems/GunInfo/VBoxContainer/AmmoCounter/AmmoCurrent
@onready var ammo_reserve: Label = $WobbleItems/GunInfo/VBoxContainer/AmmoCounter/AmmoReserve
@onready var gun_info: MarginContainer = $WobbleItems/GunInfo
@onready var money: Label = $WobbleItems/Money
@onready var crosshair: TextureRect = $StaticItems/Crosshair
@onready var crosshair_center: TextureRect = $StaticItems/CrosshairCenter
@onready var pickup_item_indicator = preload("res://assets/pickup_item_indicator.tscn")
@onready var wobble_items: Control = $WobbleItems
const FULL_WHITE = Color(1, 1, 1, 1)
const TRANSPARENT = Color(1, 1, 1, 0)
@@ -173,6 +174,8 @@ func _process(delta: float) -> void:
## SPAWN NOTIFICATIONS
spawn_notifs()
wobble_items.position = hud_wobble(delta)
func crosshair_size_change():
crosshair_target += Vector2(20,20)
@@ -220,3 +223,20 @@ func spawn_notifs():
func player_hit():
crosshair_size_change()
func hud_wobble(delta):
var viewport_height_adj = (get_viewport().size.y/1080)
var HUD_WOBBLE_MAX : float = 40 * viewport_height_adj
var MOUSE_AMT = 10 * viewport_height_adj
var VELOCITY_AMT = 100 * viewport_height_adj
var HUD_SPEED = 10 * viewport_height_adj
var dir_mouse = Vector2(-player.mouse_input.x * MOUSE_AMT,-player.mouse_input.y * MOUSE_AMT)
var velocity_dir_transformed = player.velocity.normalized() * player.global_basis
var velocity_lengh_clamped = clamp(player.velocity.length(),-VELOCITY_AMT,VELOCITY_AMT)
var dir_velocity = Vector2(-velocity_dir_transformed.x * velocity_lengh_clamped,velocity_dir_transformed.y * velocity_lengh_clamped)
var dir_clamped = clamp(dir_mouse + dir_velocity,Vector2(-HUD_WOBBLE_MAX,-HUD_WOBBLE_MAX),Vector2(HUD_WOBBLE_MAX,HUD_WOBBLE_MAX))
var offset = lerp(position, dir_clamped, delta * HUD_SPEED)
return offset