feat: 添加手枪武器

This commit is contained in:
luke358
2026-05-19 21:07:44 +08:00
parent 4fa565e0e9
commit dc26a7cf60
27 changed files with 348 additions and 2 deletions
+23
View File
@@ -0,0 +1,23 @@
extends Node2D
class_name Projectile
@export var hitbox: HitboxComponent
var velocity: Vector2
func _process(delta: float) -> void:
position += velocity * delta
func set_projectile(velocity: Vector2, damage: float, critical: bool, knockback: float, unit: Node2D) -> void:
self.velocity = velocity
rotation = velocity.angle()
if hitbox:
hitbox.setup(damage, critical, knockback, unit)
func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
queue_free()
func _on_hitbox_component_on_hit_hurtbox(hurtbox: HurtboxComponent) -> void:
queue_free()
+1
View File
@@ -0,0 +1 @@
uid://bmye8ydta5x0x
+9
View File
@@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://dgxgta5rdunaj"]
[ext_resource type="PackedScene" uid="uid://cponp20ht0gf6" path="res://scenes/projectiles/projectile_pistol.tscn" id="1_kgo5h"]
[ext_resource type="Texture2D" uid="uid://3c2kwaw7powj" path="res://assets/sprites/Projectiles/Projectile_3.png" id="2_4n0tj"]
[node name="ProjectileLaser" unique_id=109874266 instance=ExtResource("1_kgo5h")]
[node name="Sprite2D" parent="." index="0" unique_id=575255969]
texture = ExtResource("2_4n0tj")
+28
View File
@@ -0,0 +1,28 @@
[gd_scene format=3 uid="uid://cponp20ht0gf6"]
[ext_resource type="Texture2D" uid="uid://45dwbyxmy4wd" path="res://assets/sprites/Projectiles/Projectile_2.png" id="1_4u32m"]
[ext_resource type="Script" uid="uid://bmye8ydta5x0x" path="res://scenes/projectiles/projectile.gd" id="1_71gtn"]
[ext_resource type="PackedScene" uid="uid://c0fyx8gj5uexl" path="res://scenes/components/hitbox_component.tscn" id="1_u4710"]
[sub_resource type="CircleShape2D" id="CircleShape2D_4u32m"]
radius = 13.0
[node name="ProjectilePistol" type="Node2D" unique_id=109874266 node_paths=PackedStringArray("hitbox")]
script = ExtResource("1_71gtn")
hitbox = NodePath("HitboxComponent")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=575255969]
scale = Vector2(0.5, 0.5)
texture = ExtResource("1_4u32m")
[node name="HitboxComponent" parent="." unique_id=151235566 instance=ExtResource("1_u4710")]
collision_layer = 16
collision_mask = 8
[node name="CollisionShape2D" type="CollisionShape2D" parent="HitboxComponent" unique_id=1598992093]
shape = SubResource("CircleShape2D_4u32m")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="." unique_id=1911021715]
[connection signal="on_hit_hurtbox" from="HitboxComponent" to="." method="_on_hitbox_component_on_hit_hurtbox"]
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_exited"]
@@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://bvdn35euxceps"]
[ext_resource type="PackedScene" uid="uid://cponp20ht0gf6" path="res://scenes/projectiles/projectile_pistol.tscn" id="1_yd76t"]
[ext_resource type="Texture2D" uid="uid://d3m2aqwl8u1qx" path="res://assets/sprites/Projectiles/Projectile_4.png" id="2_5bfio"]
[node name="ProjectileRevolver" unique_id=109874266 instance=ExtResource("1_yd76t")]
[node name="Sprite2D" parent="." index="0" unique_id=575255969]
texture = ExtResource("2_5bfio")
@@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://5mv5jtkql7pm"]
[ext_resource type="PackedScene" uid="uid://cponp20ht0gf6" path="res://scenes/projectiles/projectile_pistol.tscn" id="1_lmmiu"]
[ext_resource type="Texture2D" uid="uid://cmr4xxqrthts7" path="res://assets/sprites/Projectiles/Projectile_1.png" id="2_gh7rf"]
[node name="ProjectileShotgun" unique_id=109874266 instance=ExtResource("1_lmmiu")]
[node name="Sprite2D" parent="." index="0" unique_id=575255969]
texture = ExtResource("2_gh7rf")
+9
View File
@@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://7doitq0bldjw"]
[ext_resource type="PackedScene" uid="uid://cponp20ht0gf6" path="res://scenes/projectiles/projectile_pistol.tscn" id="1_s2juw"]
[ext_resource type="Texture2D" uid="uid://bf4yrlp8dofx1" path="res://assets/sprites/Projectiles/Projectile_5.png" id="2_7qwbs"]
[node name="ProjectileSMG" unique_id=109874266 instance=ExtResource("1_s2juw")]
[node name="Sprite2D" parent="." index="0" unique_id=575255969]
texture = ExtResource("2_7qwbs")