From 16d755996550db489012e96fd1049dc661694ad2 Mon Sep 17 00:00:00 2001 From: Tabby <41929769+tabby-cat-nya@users.noreply.github.com> Date: Sun, 20 Jul 2025 17:33:13 +1000 Subject: [PATCH] hp bar and borders --- Prefabs/new_obstacle.gd | 1 + Sprites/sheilds.png | Bin 0 -> 604 bytes Sprites/sheilds.png.import | 34 +++++++ Sprites/sheilds.pxo | Bin 0 -> 3479 bytes game.tscn | 181 ++++++++++++++++++++++++++++++++++++- logic.gd | 17 ++++ logic.gd.uid | 1 + screen_borders.gd | 18 ++++ screen_borders.gd.uid | 1 + ship.gd | 1 + 10 files changed, 252 insertions(+), 2 deletions(-) create mode 100644 Sprites/sheilds.png create mode 100644 Sprites/sheilds.png.import create mode 100644 Sprites/sheilds.pxo create mode 100644 logic.gd create mode 100644 logic.gd.uid create mode 100644 screen_borders.gd create mode 100644 screen_borders.gd.uid diff --git a/Prefabs/new_obstacle.gd b/Prefabs/new_obstacle.gd index 5bc8ce4..b2f7c92 100644 --- a/Prefabs/new_obstacle.gd +++ b/Prefabs/new_obstacle.gd @@ -16,3 +16,4 @@ func _on_body_entered(body: Node2D) -> void: #body.apply_force((body.global_position - global_position).normalized() *10000) body.linear_velocity = (body.global_position - global_position).normalized() *100 queue_free() + body.got_hit.emit() diff --git a/Sprites/sheilds.png b/Sprites/sheilds.png new file mode 100644 index 0000000000000000000000000000000000000000..0519a007638ee4e0988e081cf325c63c5efe8eaf GIT binary patch literal 604 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 void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + hp_bar.frame = hp + + +func _on_lander_got_hit() -> void: + hp -= 1 diff --git a/logic.gd.uid b/logic.gd.uid new file mode 100644 index 0000000..82cd625 --- /dev/null +++ b/logic.gd.uid @@ -0,0 +1 @@ +uid://c8g6qerxpiepy diff --git a/screen_borders.gd b/screen_borders.gd new file mode 100644 index 0000000..f5c21bb --- /dev/null +++ b/screen_borders.gd @@ -0,0 +1,18 @@ +extends Area2D + +@export var collider : CollisionShape2D + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func _on_body_entered(body: Node2D) -> void: + if body is RigidBody2D: + #body.apply_force((body.global_position - global_position).normalized() *10000) + body.linear_velocity = (collider.shape.normal).normalized() *100 + body.got_hit.emit() diff --git a/screen_borders.gd.uid b/screen_borders.gd.uid new file mode 100644 index 0000000..8896907 --- /dev/null +++ b/screen_borders.gd.uid @@ -0,0 +1 @@ +uid://b3w38e1a77qr0 diff --git a/ship.gd b/ship.gd index 15806a2..ca38334 100644 --- a/ship.gd +++ b/ship.gd @@ -1,6 +1,7 @@ extends RigidBody2D signal moved +signal got_hit @export var thrust_power : float = 1 @export var turn_power : float = 1