police car weak point
This commit is contained in:
parent
324e7d437b
commit
8a173b968d
15 changed files with 203 additions and 9 deletions
91
player/explosion/explosion.tscn
Normal file
91
player/explosion/explosion.tscn
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
[gd_scene format=3 uid="uid://dwayva0yscri8"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://br3jskryab3if" path="res://player/explosion/hit_area.gd" id="1_yr3g8"]
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_5mksp"]
|
||||
height = 0.5
|
||||
radial_segments = 8
|
||||
rings = 8
|
||||
is_hemisphere = true
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xpyis"]
|
||||
transparency = 1
|
||||
blend_mode = 1
|
||||
shading_mode = 0
|
||||
albedo_color = Color(1, 0, 0, 0.48235294)
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_xpyis"]
|
||||
radius = 4.0949817
|
||||
|
||||
[sub_resource type="Animation" id="Animation_yr3g8"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Container:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_xpyis"]
|
||||
resource_name = "explode"
|
||||
length = 0.5
|
||||
step = 0.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Container:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.2, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(1, 1, 1), Vector3(0, 0, 0)]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.5),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"queue_free"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_120gr"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_yr3g8"),
|
||||
&"explode": SubResource("Animation_xpyis")
|
||||
}
|
||||
|
||||
[node name="Explosion" type="Node3D" unique_id=702514359]
|
||||
|
||||
[node name="Container" type="Node3D" parent="." unique_id=1035655414]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Container" unique_id=509955843]
|
||||
transform = Transform3D(7.6891003, 0, 0, 0, 7.6891003, 0, 0, 0, 7.6891003, 0, 0, 0)
|
||||
mesh = SubResource("SphereMesh_5mksp")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_xpyis")
|
||||
|
||||
[node name="HitArea" type="Area3D" parent="Container" unique_id=468568433]
|
||||
collision_layer = 0
|
||||
collision_mask = 12
|
||||
script = ExtResource("1_yr3g8")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Container/HitArea" unique_id=837356976]
|
||||
shape = SubResource("SphereShape3D_xpyis")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=893547695]
|
||||
libraries/ = SubResource("AnimationLibrary_120gr")
|
||||
autoplay = &"explode"
|
||||
10
player/explosion/hit_area.gd
Normal file
10
player/explosion/hit_area.gd
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
extends Area3D
|
||||
|
||||
func _on_collision(node: Node3D):
|
||||
if node.has_method("hit"):
|
||||
node.hit(null)
|
||||
|
||||
func _ready() -> void:
|
||||
body_entered.connect(_on_collision)
|
||||
area_entered.connect(_on_collision)
|
||||
|
||||
1
player/explosion/hit_area.gd.uid
Normal file
1
player/explosion/hit_area.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://br3jskryab3if
|
||||
|
|
@ -87,7 +87,7 @@ func _process_shoot(delta: float) -> void:
|
|||
fire_clock -= delta * clock_mul
|
||||
if Input.is_action_pressed("fire") and fire_clock <= 0.:
|
||||
var dir := Vector3.RIGHT.rotated(Vector3.UP, aim_angle)
|
||||
var player_projectile: PlayerProjectile = preload("player_projectile.tscn").instantiate()
|
||||
var player_projectile: PlayerProjectile = preload("res://player/projectile/player_projectile.tscn").instantiate()
|
||||
player_projectile.init(dir)
|
||||
player_projectile.global_position = global_position + Vector3.UP * 0.5
|
||||
add_sibling(player_projectile)
|
||||
|
|
|
|||
|
|
@ -63,3 +63,26 @@ size_flags_horizontal = 10
|
|||
theme_override_font_sizes/font_size = 48
|
||||
text = "Health: 2"
|
||||
horizontal_alignment = 2
|
||||
|
||||
[node name="StaminaBar" type="ProgressBar" parent="CanvasLayer" unique_id=961689130]
|
||||
unique_name_in_owner = true
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -162.0
|
||||
offset_top = -27.0
|
||||
offset_right = 162.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
max_value = 1.0
|
||||
show_percentage = false
|
||||
|
||||
[node name="Label" type="Label" parent="CanvasLayer/StaminaBar" unique_id=1238654404]
|
||||
layout_mode = 0
|
||||
offset_left = 132.0
|
||||
offset_top = -27.0
|
||||
offset_right = 196.0
|
||||
offset_bottom = -4.0
|
||||
text = "Stamina"
|
||||
|
|
|
|||
|
|
@ -10,12 +10,14 @@ var health: int = 1:
|
|||
if v == 0:
|
||||
queue_free()
|
||||
|
||||
func _on_collision(node: Node3D):
|
||||
if node.has_method("hit"):
|
||||
if node.hit(self):
|
||||
health -= 1
|
||||
|
||||
func _ready() -> void:
|
||||
body_entered.connect(func(body: Node3D):
|
||||
if body.has_method("hit"):
|
||||
body.hit(self)
|
||||
health -= 1
|
||||
)
|
||||
body_entered.connect(_on_collision)
|
||||
area_entered.connect(_on_collision)
|
||||
|
||||
func init(dir: Vector3) -> void:
|
||||
_initialized = true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue