started fixing hud to prevent crosshair from wobbling
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user