1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

feat(子弹系统): 添加Egg子弹类型及相关资源

添加新的Egg子弹类型,包括脚本、纹理和场景文件。更新Kernyr角色的攻击逻辑以使用Egg子弹。新增篮球和雷电纹理资源及其导入配置。
This commit is contained in:
2026-03-28 09:47:41 +08:00
parent ce7765c027
commit 2105de1131
8 changed files with 157 additions and 2 deletions
+64
View File
@@ -0,0 +1,64 @@
[gd_scene load_steps=11 format=3 uid="uid://df67upy2qhwng"]
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_q6qy4"]
[ext_resource type="Script" uid="uid://cyaq3u5iu08uo" path="res://scripts/Contents/Bullets/Egg.gd" id="2_6esgc"]
[ext_resource type="Texture2D" uid="uid://dn1rrlcltalbw" path="res://resources/bullets/Thunder/篮球.svg" id="3_6esgc"]
[sub_resource type="SpriteFrames" id="SpriteFrames_6esgc"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_6esgc")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="Curve" id="Curve_6esgc"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_m48vu"]
curve = SubResource("Curve_6esgc")
[sub_resource type="Curve" id="Curve_qotgv"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.7), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_jb1ir"]
curve = SubResource("Curve_qotgv")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_l0xv4"]
particle_flag_disable_z = true
direction = Vector3(0, 1, 0)
spread = 0.0
initial_velocity_min = 200.0
initial_velocity_max = 200.0
gravity = Vector3(0, 0, 0)
scale_min = 0.79999995
scale_max = 0.79999995
scale_curve = SubResource("CurveTexture_jb1ir")
alpha_curve = SubResource("CurveTexture_m48vu")
[sub_resource type="CircleShape2D" id="CircleShape2D_m48vu"]
radius = 24.0
[node name="Egg" instance=ExtResource("1_q6qy4")]
script = ExtResource("2_6esgc")
speed = 0.0
lifeTime = 3000.0
[node name="texture" parent="." index="0"]
rotation = 1.5707964
scale = Vector2(1.25, 1.25)
sprite_frames = SubResource("SpriteFrames_6esgc")
[node name="trail2" type="GPUParticles2D" parent="texture" index="1"]
z_index = -1
texture = ExtResource("3_6esgc")
local_coords = true
process_material = SubResource("ParticleProcessMaterial_l0xv4")
[node name="hitbox" parent="." index="1"]
shape = SubResource("CircleShape2D_m48vu")
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cub4ffyuqx24q"
path="res://.godot/imported/thunder.png-91a5b8e381b0cdfb1da84c66cc9523a3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/bullets/Thunder/thunder.png"
dest_files=["res://.godot/imported/thunder.png-91a5b8e381b0cdfb1da84c66cc9523a3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dn1rrlcltalbw"
path="res://.godot/imported/篮球.svg-703ccac0ca8b985f7bb4cd4509f87b99.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/bullets/Thunder/篮球.svg"
dest_files=["res://.godot/imported/篮球.svg-703ccac0ca8b985f7bb4cd4509f87b99.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+6
View File
@@ -0,0 +1,6 @@
extends BulletBase
class_name EggBullet
func ai():
speed += 0.25
PresetBulletAI.forward(self , rotation)
+1
View File
@@ -0,0 +1 @@
uid://cyaq3u5iu08uo
+2 -2
View File
@@ -45,12 +45,12 @@ func attack(type: int):
for i in count:
await sprintTo(anchor + Vector2.from_angle(deg_to_rad(i / count * 360.0 - 90)) * radius, 0.5)
for bullet in BulletBase.generate(
ComponentManager.getBullet("Yangyi"),
ComponentManager.getBullet("Egg"),
self ,
position,
0
):
if bullet is YangyiBullet:
if bullet is EggBullet:
bullet.look_at(anchor)
await TickTool.millseconds(2000)
await chargeUp()