mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +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="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="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"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jyenr"]
|
||||||
shader = ExtResource("1_vncc3")
|
shader = ExtResource("1_vncc3")
|
||||||
@@ -11,8 +13,19 @@ shader_parameter/edgeHeight = 0.05
|
|||||||
shader_parameter/trailHeight = 0.3
|
shader_parameter/trailHeight = 0.3
|
||||||
shader_parameter/trailAlpha = 0.5
|
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="Node2D" type="Node2D"]
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
material = SubResource("ShaderMaterial_jyenr")
|
material = SubResource("ShaderMaterial_jyenr")
|
||||||
|
position = Vector2(-471, 117)
|
||||||
texture = ExtResource("2_gmp7s")
|
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
|
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