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_FACTOR = 0.4
|
||||||
const CAMERA_OFFSET_TIME = 1.0
|
const CAMERA_OFFSET_TIME = 1.0
|
||||||
|
|
||||||
|
const SHADER_DAMAGE_INDICATOR = "shader_parameter/intensity"
|
||||||
|
|
||||||
|
|
||||||
@export_group("Movement", "move")
|
@export_group("Movement", "move")
|
||||||
@export_range(0.0, 1000.0) var move_max_speed_normal := 350
|
@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 _slow_down_tween: Tween
|
||||||
var _camera_offset_tween: Tween
|
var _camera_offset_tween: Tween
|
||||||
|
var _damage_indicator_tween: Tween
|
||||||
|
|
||||||
var _last_wall_normal: = 0.0
|
var _last_wall_normal: = 0.0
|
||||||
|
|
||||||
@@ -155,6 +158,14 @@ func _input(event: InputEvent) -> void:
|
|||||||
|
|
||||||
|
|
||||||
func deal_damage(value: float) -> 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
|
_current_health -= value
|
||||||
health_changed.emit(_current_health)
|
health_changed.emit(_current_health)
|
||||||
if _current_health < 0.0 or is_zero_approx(_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="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="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://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://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://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://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"]
|
[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"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_cjfdk"]
|
||||||
atlas = ExtResource("2_cjfdk")
|
atlas = ExtResource("2_cjfdk")
|
||||||
region = Rect2(0, 32, 32, 32)
|
region = Rect2(0, 32, 32, 32)
|
||||||
@@ -549,6 +555,7 @@ collision_layer = 2
|
|||||||
script = ExtResource("1_1a4jd")
|
script = ExtResource("1_1a4jd")
|
||||||
|
|
||||||
[node name="PlayerSprite" type="AnimatedSprite2D" parent="." unique_id=2025942250]
|
[node name="PlayerSprite" type="AnimatedSprite2D" parent="." unique_id=2025942250]
|
||||||
|
material = SubResource("ShaderMaterial_fa7iy")
|
||||||
sprite_frames = SubResource("SpriteFrames_bhunq")
|
sprite_frames = SubResource("SpriteFrames_bhunq")
|
||||||
animation = &"idle"
|
animation = &"idle"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user