From 3f3140cad0b84cec03fa50c45aaf66e03124e2dd Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Wed, 25 Oct 2023 22:30:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E9=9D=A2=E6=96=B9=E5=90=91=E6=A0=87?= =?UTF-8?q?=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- render/texture/readiness_hero.png | Bin 0 -> 1784 bytes render/texture/readiness_hero.png.import | 34 ++++++++++++++++++++ render/texture/readiness_monster.png | Bin 0 -> 3255 bytes render/texture/readiness_monster.png.import | 34 ++++++++++++++++++++ scene/effect/decal/readiness_hero.tscn | 9 ++++++ scene/effect/decal/readiness_monster.tscn | 9 ++++++ script/character/character.gd | 5 ++- script/character/effect.gd | 20 ++++++++++-- 8 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 render/texture/readiness_hero.png create mode 100644 render/texture/readiness_hero.png.import create mode 100644 render/texture/readiness_monster.png create mode 100644 render/texture/readiness_monster.png.import create mode 100644 scene/effect/decal/readiness_hero.tscn create mode 100644 scene/effect/decal/readiness_monster.tscn diff --git a/render/texture/readiness_hero.png b/render/texture/readiness_hero.png new file mode 100644 index 0000000000000000000000000000000000000000..87b8ce3f31c5109543781f549a0e9a7c3e063417 GIT binary patch literal 1784 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 W=f1qBtHSt+fJ}{$h&n@b-2VV6c}c(k literal 0 HcmV?d00001 diff --git a/render/texture/readiness_monster.png.import b/render/texture/readiness_monster.png.import new file mode 100644 index 0000000..48b6124 --- /dev/null +++ b/render/texture/readiness_monster.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xtipei54v35i" +path="res://.godot/imported/readiness_monster.png-c62163d25615aac211401f6ba719c65d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://render/texture/readiness_monster.png" +dest_files=["res://.godot/imported/readiness_monster.png-c62163d25615aac211401f6ba719c65d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=0 +compress/normal_map=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=false +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scene/effect/decal/readiness_hero.tscn b/scene/effect/decal/readiness_hero.tscn new file mode 100644 index 0000000..c01d8cc --- /dev/null +++ b/scene/effect/decal/readiness_hero.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://7ej8d4b1lc0v"] + +[ext_resource type="Texture2D" uid="uid://dpsxejelj58f8" path="res://render/texture/readiness_hero.png" id="1_gkbai"] + +[node name="ReadinessHero" type="Decal"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.358925, 0) +size = Vector3(1, 1, 1) +texture_albedo = ExtResource("1_gkbai") +cull_mask = 1 diff --git a/scene/effect/decal/readiness_monster.tscn b/scene/effect/decal/readiness_monster.tscn new file mode 100644 index 0000000..eee86c7 --- /dev/null +++ b/scene/effect/decal/readiness_monster.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://64e2u2uedpi1"] + +[ext_resource type="Texture2D" uid="uid://xtipei54v35i" path="res://render/texture/readiness_monster.png" id="1_2mpei"] + +[node name="ReadinessHero" type="Decal"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.358925, 0) +size = Vector3(1, 1, 1) +texture_albedo = ExtResource("1_2mpei") +cull_mask = 1 diff --git a/script/character/character.gd b/script/character/character.gd index 05e2a3a..08e4052 100644 --- a/script/character/character.gd +++ b/script/character/character.gd @@ -7,6 +7,7 @@ class_name Character @onready var buff = (%Buff as Buff) @onready var skill = (%Skill as Skill) @onready var battle = (%Battle as Battle) +@onready var effect = (%Effect as Effect) func init(id:int,cfg:CharacterCfg,team:Enum.ETeam): status.id = id @@ -14,13 +15,15 @@ func init(id:int,cfg:CharacterCfg,team:Enum.ETeam): status.cfg = cfg var half_height = Setting.pixel_size * Setting.sprite_scale * cfg.sprite_harf_height var width = Setting.pixel_size * Setting.sprite_scale * cfg.sprite_width + var body_scale = Vector3(width,half_height*2,width) collision.position = Vector3(0,half_height,0) - collision.scale = Vector3(width,half_height*2,width) + collision.scale = body_scale status.basic_offset = Vector3(0,half_height,0) status.ui_offset = Vector3(0,half_height*2.2,0) view.scale = Vector3(1,Setting.sprite_scale,1) view.init(cfg.sprite_frames) skill.init() + effect.init(cfg.type,body_scale) func init_after(): var cfg = status.cfg as CharacterCfg diff --git a/script/character/effect.gd b/script/character/effect.gd index c1f1d33..7a1e6e2 100644 --- a/script/character/effect.gd +++ b/script/character/effect.gd @@ -3,15 +3,29 @@ class_name Effect @onready var afterimage = preload("res://scene/effect/afterimage/normal.tscn") @onready var corpse = preload("res://scene/effect/afterimage/normal.tscn") +@onready var readiness_hero = preload("res://scene/effect/decal/readiness_hero.tscn") +@onready var readiness_monster = preload("res://scene/effect/decal/readiness_monster.tscn") @onready var character = (get_owner() as Character) @onready var view = (%View as View) +@onready var status = (%Status as Status) -func _ready(): - pass +var rediness : Decal + +func init(type:Enum.ECharacterType,body_scale:Vector3): + match type: + Enum.ECharacterType.Player:rediness = readiness_hero.instantiate() + Enum.ECharacterType.Monster:rediness = readiness_monster.instantiate() + if rediness: + rediness.scale = body_scale *1.5 + rediness.scale.y = 10 + rediness.position = Vector3.DOWN * 4 + add_child(rediness) func _process(delta): - pass + if status.move_dir: + var angle = status.move_dir.angle_to(Vector2.RIGHT) + rediness.rotation.y = angle func cast_image(res:Resource): var new_afterimage = afterimage.instantiate() as Afterimage