mirror of
https://github.com/kristoferssolo/FuncIt.git
synced 2025-10-21 19:30:35 +00:00
Added health bar
This commit is contained in:
parent
f7cb616e21
commit
9a157b2284
@ -9,6 +9,8 @@ var bullet
|
||||
var username_text = load("res://source/scenes/OVERLAY/elements/username_text.tscn")
|
||||
var username setget username_set
|
||||
var username_text_instance = null
|
||||
var health_bar_scene = load("res://source/scenes/OVERLAY/elements/HUD.tscn")
|
||||
var health_bar_instance = null
|
||||
var hp = 100 setget set_hp
|
||||
var can_shoot = true
|
||||
var is_reloading = false
|
||||
@ -96,6 +98,8 @@ func _ready():
|
||||
get_tree().connect("network_peer_connected", self, "_network_peer_connected")
|
||||
username_text_instance = Global.instance_node_at_location(username_text, PersistentNodes, global_position)
|
||||
username_text_instance.player_following = self
|
||||
health_bar_instance = Global.instance_node_at_location(health_bar_scene, PersistentNodes, global_position)
|
||||
health_bar_instance.player_following = self
|
||||
update_shoot_mode(false)
|
||||
Global.alive_players.append(self)
|
||||
|
||||
@ -421,14 +425,17 @@ func _on_hitbox_area_entered(area):
|
||||
sync func hit_by_damager(damage):
|
||||
hp -= damage
|
||||
modulate = Color(5, 5, 5, 1)
|
||||
health_bar_instance.value = hp
|
||||
hit_timer.start()
|
||||
|
||||
|
||||
sync func enable() -> void:
|
||||
hp = 100
|
||||
health_bar_instance.value = 100
|
||||
can_shoot = false
|
||||
update_shoot_mode(false)
|
||||
username_text_instance.visible = true
|
||||
health_bar_instance.visible = true
|
||||
visible = true
|
||||
$player_collider.disabled = false
|
||||
$hitbox/CollisionShape2D.disabled = false
|
||||
@ -444,6 +451,7 @@ sync func enable() -> void:
|
||||
|
||||
sync func destroy() -> void:
|
||||
username_text_instance.visible = false
|
||||
health_bar_instance.visible = false
|
||||
visible = false
|
||||
$player_collider.disabled = true
|
||||
$hitbox/CollisionShape2D.disabled = true
|
||||
|
||||
@ -70,6 +70,7 @@ func _player_disconnected(id) -> void:
|
||||
|
||||
if PersistentNodes.has_node(str(id)):
|
||||
PersistentNodes.get_node(str(id)).username_text_instance.queue_free()
|
||||
PersistentNodes.get_node(str(id)).health_bar_instance.queue_free()
|
||||
PersistentNodes.get_node(str(id)).queue_free()
|
||||
|
||||
|
||||
|
||||
18
source/assets/scripts/ui_element_handlers/HUD.gd
Normal file
18
source/assets/scripts/ui_element_handlers/HUD.gd
Normal file
@ -0,0 +1,18 @@
|
||||
extends Node2D
|
||||
|
||||
var player_following = null
|
||||
var value = "" setget value_set
|
||||
|
||||
var distanceToPlayerOffset = -150
|
||||
|
||||
onready var health_bar = $health_bar
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if player_following != null:
|
||||
global_position = player_following.global_position + Vector2(0,distanceToPlayerOffset).rotated(player_following.rotation)
|
||||
|
||||
|
||||
func value_set(new_text) -> void:
|
||||
value = new_text
|
||||
health_bar.value = value
|
||||
BIN
source/assets/sprites/GUI/bar-background.png
Normal file
BIN
source/assets/sprites/GUI/bar-background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 989 B |
BIN
source/assets/sprites/GUI/bar-fill.png
Normal file
BIN
source/assets/sprites/GUI/bar-fill.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 984 B |
@ -173,10 +173,15 @@
|
||||
|
||||
[sub_resource type="SpriteFrames" id=2]
|
||||
animations = [ {
|
||||
"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
|
||||
"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
|
||||
"loop": true,
|
||||
"name": "boost-speed-right-01",
|
||||
"speed": 50.0
|
||||
"name": "move-speed-left-03",
|
||||
"speed": 35.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ],
|
||||
"loop": true,
|
||||
"name": "move-speed-right-02",
|
||||
"speed": 35.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
|
||||
"loop": true,
|
||||
@ -188,21 +193,6 @@ animations = [ {
|
||||
"name": "move-speed-right-04",
|
||||
"speed": 35.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 162 ), ExtResource( 135 ), ExtResource( 146 ), ExtResource( 141 ), ExtResource( 143 ), ExtResource( 163 ), ExtResource( 149 ), ExtResource( 136 ), ExtResource( 154 ), ExtResource( 137 ), ExtResource( 165 ), ExtResource( 142 ), ExtResource( 139 ), ExtResource( 159 ), ExtResource( 140 ), ExtResource( 155 ), ExtResource( 144 ), ExtResource( 151 ), ExtResource( 153 ), ExtResource( 166 ) ],
|
||||
"loop": true,
|
||||
"name": "boost-speed-left-04",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
|
||||
"loop": true,
|
||||
"name": "idle-speed-right-02",
|
||||
"speed": 25.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 99 ), ExtResource( 83 ), ExtResource( 109 ), ExtResource( 111 ), ExtResource( 101 ), ExtResource( 96 ), ExtResource( 79 ), ExtResource( 132 ), ExtResource( 119 ), ExtResource( 80 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 106 ), ExtResource( 121 ), ExtResource( 129 ), ExtResource( 100 ), ExtResource( 108 ), ExtResource( 110 ), ExtResource( 120 ) ],
|
||||
"loop": true,
|
||||
"name": "boost-speed-right-04",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
|
||||
"loop": true,
|
||||
"name": "move-speed-right-03",
|
||||
@ -233,15 +223,40 @@ animations = [ {
|
||||
"name": "idle-speed-left-01",
|
||||
"speed": 25.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
|
||||
"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
|
||||
"loop": true,
|
||||
"name": "move-speed-left-03",
|
||||
"name": "boost-speed-left-01",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 162 ), ExtResource( 135 ), ExtResource( 146 ), ExtResource( 141 ), ExtResource( 143 ), ExtResource( 163 ), ExtResource( 149 ), ExtResource( 136 ), ExtResource( 154 ), ExtResource( 137 ), ExtResource( 165 ), ExtResource( 142 ), ExtResource( 139 ), ExtResource( 159 ), ExtResource( 140 ), ExtResource( 155 ), ExtResource( 144 ), ExtResource( 151 ), ExtResource( 153 ), ExtResource( 166 ) ],
|
||||
"loop": true,
|
||||
"name": "boost-speed-left-04",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
|
||||
"loop": true,
|
||||
"name": "idle-speed-right-02",
|
||||
"speed": 25.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 99 ), ExtResource( 83 ), ExtResource( 109 ), ExtResource( 111 ), ExtResource( 101 ), ExtResource( 96 ), ExtResource( 79 ), ExtResource( 132 ), ExtResource( 119 ), ExtResource( 80 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 106 ), ExtResource( 121 ), ExtResource( 129 ), ExtResource( 100 ), ExtResource( 108 ), ExtResource( 110 ), ExtResource( 120 ) ],
|
||||
"loop": true,
|
||||
"name": "boost-speed-right-04",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
|
||||
"loop": true,
|
||||
"name": "boost-speed-right-01",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
|
||||
"loop": true,
|
||||
"name": "move-speed-left-01",
|
||||
"speed": 35.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ],
|
||||
"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
|
||||
"loop": true,
|
||||
"name": "move-speed-right-02",
|
||||
"speed": 35.0
|
||||
"name": "boost-speed-right-03",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
|
||||
"loop": true,
|
||||
@ -252,21 +267,6 @@ animations = [ {
|
||||
"loop": true,
|
||||
"name": "boost-speed-right-02",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
|
||||
"loop": true,
|
||||
"name": "move-speed-left-01",
|
||||
"speed": 35.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
|
||||
"loop": true,
|
||||
"name": "boost-speed-left-01",
|
||||
"speed": 50.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
|
||||
"loop": true,
|
||||
"name": "boost-speed-right-03",
|
||||
"speed": 50.0
|
||||
} ]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=3]
|
||||
@ -299,7 +299,7 @@ radius = 41.5403
|
||||
animations = [ {
|
||||
"frames": [ ExtResource( 170 ) ],
|
||||
"loop": true,
|
||||
"name": "03",
|
||||
"name": "02",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 27 ) ],
|
||||
@ -307,15 +307,15 @@ animations = [ {
|
||||
"name": "01",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 170 ) ],
|
||||
"loop": true,
|
||||
"name": "03",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 169 ) ],
|
||||
"loop": true,
|
||||
"name": "04",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 170 ) ],
|
||||
"loop": true,
|
||||
"name": "02",
|
||||
"speed": 5.0
|
||||
} ]
|
||||
|
||||
[node name="player" type="KinematicBody2D" groups=[
|
||||
|
||||
@ -28,7 +28,7 @@ use_mipmaps = true
|
||||
use_filter = true
|
||||
font_data = ExtResource( 2 )
|
||||
|
||||
[node name="network_setup" type="Control"]
|
||||
[node name="network_setup2" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource( 1 )
|
||||
|
||||
26
source/scenes/OVERLAY/elements/HUD.tscn
Normal file
26
source/scenes/OVERLAY/elements/HUD.tscn
Normal file
@ -0,0 +1,26 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://source/assets/sprites/GUI/bar-background.png" type="Texture" id=1]
|
||||
[ext_resource path="res://source/assets/sprites/GUI/bar-fill.png" type="Texture" id=2]
|
||||
[ext_resource path="res://source/assets/scripts/ui_element_handlers/HUD.gd" type="Script" id=3]
|
||||
|
||||
[node name="HUD" type="Node2D" groups=[
|
||||
"Net",
|
||||
]]
|
||||
script = ExtResource( 3 )
|
||||
|
||||
[node name="health_bar" type="TextureProgress" parent="."]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -64.0
|
||||
margin_top = -20.0
|
||||
margin_right = 64.0
|
||||
margin_bottom = 20.0
|
||||
value = 100.0
|
||||
texture_under = ExtResource( 1 )
|
||||
texture_progress = ExtResource( 2 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user