mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-27 22:41:56 +08:00
feat(角色): 添加KukeMC的AI逻辑和轮廓着色器
实现KukeMC的AI行为,包括子弹检测和Boss伤害逻辑 添加新的轮廓着色器用于角色渲染 在测试场景中新增角色和着色器演示
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bnf0o8rmin5v4"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bnf0o8rmin5v4"]
|
||||
|
||||
[ext_resource type="Shader" path="res://shaders/CooldownProgress.gdshader" id="1_vncc3"]
|
||||
[ext_resource type="Texture2D" uid="uid://16yhngg3jpun" path="res://resources/weapons/purple-crystal.svg" id="2_gmp7s"]
|
||||
[ext_resource type="Shader" path="res://shaders/Outline.gdshader" id="3_8bxlh"]
|
||||
[ext_resource type="Texture2D" uid="uid://dkmxuxkwtgbjg" path="res://resources/characters/kernel/7C0F216A29125CA213705918760B1AAA.png" id="3_hridd"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jyenr"]
|
||||
shader = ExtResource("1_vncc3")
|
||||
@@ -11,8 +13,19 @@ shader_parameter/edgeHeight = 0.05
|
||||
shader_parameter/trailHeight = 0.3
|
||||
shader_parameter/trailAlpha = 0.5
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tnwho"]
|
||||
shader = ExtResource("3_8bxlh")
|
||||
shader_parameter/width = 10.0
|
||||
shader_parameter/outline_color = Color(0.78125, 0, 1, 1)
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_jyenr")
|
||||
position = Vector2(-471, 117)
|
||||
texture = ExtResource("2_gmp7s")
|
||||
|
||||
[node name="7c0f216a29125ca213705918760b1aaa" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_tnwho")
|
||||
position = Vector2(503, 133)
|
||||
texture = ExtResource("3_hridd")
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 380 KiB |
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dkmxuxkwtgbjg"
|
||||
path="res://.godot/imported/7C0F216A29125CA213705918760B1AAA.png-dc61b6af222e8d9ef347821cadcb5266.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/characters/kernel/7C0F216A29125CA213705918760B1AAA.png"
|
||||
dest_files=["res://.godot/imported/7C0F216A29125CA213705918760B1AAA.png-dc61b6af222e8d9ef347821cadcb5266.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
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=1
|
||||
@@ -1,2 +1,15 @@
|
||||
extends EntityBase
|
||||
class_name KukeMC
|
||||
class_name KukeMC
|
||||
func ai():
|
||||
for bullet in get_tree().get_nodes_in_group("bullet"):
|
||||
if (
|
||||
bullet is LGBTBullet and
|
||||
bullet.position.distance_to(self.position) < 100
|
||||
):
|
||||
bullet.tryDestroy()
|
||||
for entity in get_tree().get_nodes_in_group("bosses"):
|
||||
if (
|
||||
entity.name == "FurryR" and
|
||||
entity.position.distance_to(self.position) < 100
|
||||
):
|
||||
entity.takeDamage(114514)
|
||||
@@ -0,0 +1,18 @@
|
||||
shader_type canvas_item;
|
||||
uniform float width:hint_range(0.0,30.0);
|
||||
uniform vec4 outline_color:source_color;
|
||||
void fragment(){
|
||||
float size = width * 1.0 / float(textureSize(TEXTURE,0).x);
|
||||
vec4 sprite_color = texture(TEXTURE,UV);
|
||||
float alpha = -8.0 * sprite_color.a;
|
||||
alpha += texture(TEXTURE,UV + vec2(0.0,-size)).a;
|
||||
alpha += texture(TEXTURE,UV + vec2(size,-size)).a;
|
||||
alpha += texture(TEXTURE,UV + vec2(size,0)).a;
|
||||
alpha += texture(TEXTURE,UV + vec2(size,size)).a;
|
||||
alpha += texture(TEXTURE,UV + vec2(0.0,size)).a;
|
||||
alpha += texture(TEXTURE,UV + vec2(-size,size)).a;
|
||||
alpha += texture(TEXTURE,UV + vec2(-size,0.0)).a;
|
||||
alpha += texture(TEXTURE,UV + vec2(-size,-size)).a;
|
||||
vec4 final_color = mix(sprite_color,outline_color,clamp(alpha,0.0,1.0));
|
||||
COLOR = vec4(final_color.rgb,clamp(abs(alpha) + sprite_color.a,0.0,1.0));
|
||||
}
|
||||
Reference in New Issue
Block a user