From 97606c82336faec03ba5f207f221183d6fcce2e6 Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 23 Mar 2026 10:41:11 +0000 Subject: [PATCH] Cleaned up code around shooting logic to try to get it to work (didn't help!) --- scripts/player.gd | 4 ++-- scripts/stock_weapon.gd | 13 ++++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/scripts/player.gd b/scripts/player.gd index ab7b7c7..1de40c4 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -7,7 +7,7 @@ var velocity: Vector2 = Vector2.ZERO var shield: int = 0: set = shield_set var can_shoot: bool = true var is_shooting: bool = false -var previous_location: float = 0.0 +var previous_position: Vector2 @export var weapon_current : PackedScene #var weapon_current = load("res://scenes/stock_weapon.tscn") @@ -81,7 +81,7 @@ func shoot(): #if can_shoot: var bullet = weapon_current.instantiate() bullet.position = self.position + Vector2(0,-20) - previous_location = self.position.y + previous_position = self.position get_tree().root.add_child(bullet) weapon_rate = bullet.shot_data.rate #bullet.global_transform = self.global_transform diff --git a/scripts/stock_weapon.gd b/scripts/stock_weapon.gd index adeed9d..90d9bb2 100644 --- a/scripts/stock_weapon.gd +++ b/scripts/stock_weapon.gd @@ -7,16 +7,15 @@ extends Area2D func _process(delta): - #var player_position: float = player.position.y - var spacing: int = 5 - var travel: float - travel += shot_data.speed * delta + (player.position.y - player.previous_location) - player.previous_location = player.position.y + var spacing: int = 100 + var travel: float + travel += shot_data.speed * delta + (player.position.y - player.previous_position.y) + player.previous_position.y = player.position.y if travel > spacing: - position += shot_data.speed * delta #This works normally + print("travel is greater than spacing!") + position += shot_data.speed * delta # This works normally travel -= spacing - #position += (transform.y + player.velocity) * shot_data.speed * delta #This doesn'tt func _on_visible_on_screen_notifier_2d_screen_exited() -> void: queue_free()