feat: turrents and explosions

This commit is contained in:
redglow
2026-07-21 21:53:18 +02:00
parent e7dbb9cabb
commit bc7297c6bc
18 changed files with 277 additions and 15 deletions
@@ -0,0 +1,41 @@
[gd_scene format=3 uid="uid://dfvr0g5souli2"]
[ext_resource type="Texture2D" uid="uid://bhm7kb18b1tbh" path="res://Game/Projectile/Explosion/fires.png" id="1_e3ife"]
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_bfsaf"]
particles_animation = true
particles_anim_h_frames = 2
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="Curve" id="Curve_ytfwl"]
_data = [Vector2(0.00554017, 0.021126747), 0.0, 0.0, 0, 0, Vector2(0.14681442, 0.99295783), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_jyg1o"]
curve = SubResource("Curve_ytfwl")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_u8d0v"]
lifetime_randomness = 0.1
particle_flag_disable_z = true
spread = 180.0
initial_velocity_min = 47.62
initial_velocity_max = 47.62
gravity = Vector3(0, 0, 0)
damping_min = 97.494
damping_max = 97.494
scale_min = 0.099999994
scale_max = 0.099999994
color = Color(1, 0.11372549, 0.22745098, 1)
alpha_curve = SubResource("CurveTexture_jyg1o")
anim_speed_min = 6.67
anim_speed_max = 6.67
[node name="ExplosionGPUParticles2D" type="GPUParticles2D" unique_id=1991976710]
material = SubResource("CanvasItemMaterial_bfsaf")
emitting = false
amount = 16
texture = ExtResource("1_e3ife")
lifetime = 0.3
one_shot = true
process_material = SubResource("ParticleProcessMaterial_u8d0v")
Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bhm7kb18b1tbh"
path="res://.godot/imported/fires.png-9cb25e6666cbbded849592a59c77604f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Game/Projectile/Explosion/fires.png"
dest_files=["res://.godot/imported/fires.png-9cb25e6666cbbded849592a59c77604f.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
+15
View File
@@ -4,10 +4,25 @@ namespace GodotHostTest.Game.Projectile;
public partial class Projectile : Node2D
{
[Export] private PackedScene _explosionPackedScene = null!;
[Export] private float _speed = 100;
public override void _PhysicsProcess(double delta)
{
Position += (float)delta * _speed * Vector2.Up.Rotated(Rotation);
}
private void OnArea2DEntered(Area2D _)
{
var explosion = (GpuParticles2D)_explosionPackedScene.Instantiate();
explosion.GlobalPosition = GlobalPosition;
explosion.Emitting = true;
GetTree().CurrentScene.AddChild(explosion);
QueueFree();
}
private void OnScreenExited()
{
QueueFree();
}
}
+7
View File
@@ -2,6 +2,7 @@
[ext_resource type="Script" uid="uid://dc5mvle8lc40j" path="res://Game/Projectile/Projectile.cs" id="1_g2gsk"]
[ext_resource type="Script" uid="uid://qjonl8stia46" path="res://addons/AetherBind/ServiceSource.cs" id="2_g4q5f"]
[ext_resource type="PackedScene" uid="uid://dfvr0g5souli2" path="res://Game/Projectile/Explosion/explosion_gpu_particles_2d.tscn" id="2_r0joc"]
[ext_resource type="Texture2D" uid="uid://blwkfvcupjt0v" path="res://Game/Projectile/towerDefense_tile252.png" id="3_r0joc"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_u8d0v"]
@@ -10,6 +11,7 @@ size = Vector2(22, 39)
[node name="Projectile" type="Node2D" unique_id=1686616504]
script = ExtResource("1_g2gsk")
_speed = 600.0
_explosionPackedScene = ExtResource("2_r0joc")
[node name="Scope" type="Node" parent="." unique_id=513224818 node_paths=PackedStringArray("InjectedNodes")]
script = ExtResource("2_g4q5f")
@@ -24,3 +26,8 @@ collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=1209287052]
position = Vector2(0, 0.5)
shape = SubResource("RectangleShape2D_u8d0v")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="." unique_id=2022746131]
[connection signal="area_entered" from="Area2D" to="." method="OnArea2DEntered"]
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="OnScreenExited"]