Added hit indicator
This commit is contained in:
@@ -10,6 +10,8 @@ const MAX_HEALTH = 100.0
|
||||
const CAMERA_OFFSET_FACTOR = 0.4
|
||||
const CAMERA_OFFSET_TIME = 1.0
|
||||
|
||||
const SHADER_DAMAGE_INDICATOR = "shader_parameter/intensity"
|
||||
|
||||
|
||||
@export_group("Movement", "move")
|
||||
@export_range(0.0, 1000.0) var move_max_speed_normal := 350
|
||||
@@ -35,6 +37,7 @@ const CAMERA_OFFSET_TIME = 1.0
|
||||
|
||||
var _slow_down_tween: Tween
|
||||
var _camera_offset_tween: Tween
|
||||
var _damage_indicator_tween: Tween
|
||||
|
||||
var _last_wall_normal: = 0.0
|
||||
|
||||
@@ -155,6 +158,14 @@ func _input(event: InputEvent) -> void:
|
||||
|
||||
|
||||
func deal_damage(value: float) -> void:
|
||||
if _damage_indicator_tween and _damage_indicator_tween.is_running():
|
||||
_damage_indicator_tween.kill()
|
||||
_damage_indicator_tween = create_tween()
|
||||
|
||||
_damage_indicator_tween.tween_property(player_sprite.material, SHADER_DAMAGE_INDICATOR, 0, 0.0)
|
||||
_damage_indicator_tween.tween_property(player_sprite.material, SHADER_DAMAGE_INDICATOR, 1, 0.1)
|
||||
_damage_indicator_tween.tween_property(player_sprite.material, SHADER_DAMAGE_INDICATOR, 0, 0.1)
|
||||
|
||||
_current_health -= value
|
||||
health_changed.emit(_current_health)
|
||||
if _current_health < 0.0 or is_zero_approx(_current_health):
|
||||
|
||||
@@ -2,12 +2,18 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://bm48h30pkhdkv" path="res://game/entities/player/player.gd" id="1_1a4jd"]
|
||||
[ext_resource type="Texture2D" uid="uid://vcrtyu5ifvsp" path="res://images/entities/player.png" id="2_cjfdk"]
|
||||
[ext_resource type="Shader" uid="uid://bywlejhmgj55q" path="res://game/shaders/hit_indicator.gdshader" id="2_kn1iv"]
|
||||
[ext_resource type="PackedScene" uid="uid://blxgfix54dxq3" path="res://game/state_machine/state_machine.tscn" id="2_x4rrl"]
|
||||
[ext_resource type="PackedScene" uid="uid://btu3hxif2xpvu" path="res://game/entities/player/states/idle_state.tscn" id="3_cjfdk"]
|
||||
[ext_resource type="PackedScene" uid="uid://35g5buv0k1s6" path="res://game/entities/player/states/running_state.tscn" id="5_oic1i"]
|
||||
[ext_resource type="PackedScene" uid="uid://bboaskqiwnbsb" path="res://game/entities/player/states/jump_state.tscn" id="6_v0nmi"]
|
||||
[ext_resource type="PackedScene" uid="uid://ba5sknbijujl2" path="res://game/entities/player/states/wall_state.tscn" id="7_dhej3"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fa7iy"]
|
||||
shader = ExtResource("2_kn1iv")
|
||||
shader_parameter/damage_color = Color(0.8235294, 0.8235294, 0.83137256, 1)
|
||||
shader_parameter/intensity = 0.0
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_cjfdk"]
|
||||
atlas = ExtResource("2_cjfdk")
|
||||
region = Rect2(0, 32, 32, 32)
|
||||
@@ -549,6 +555,7 @@ collision_layer = 2
|
||||
script = ExtResource("1_1a4jd")
|
||||
|
||||
[node name="PlayerSprite" type="AnimatedSprite2D" parent="." unique_id=2025942250]
|
||||
material = SubResource("ShaderMaterial_fa7iy")
|
||||
sprite_frames = SubResource("SpriteFrames_bhunq")
|
||||
animation = &"idle"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user