diff --git a/scripts/player.gd b/scripts/player.gd index d6a7180..ab7b7c7 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -7,6 +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 @export var weapon_current : PackedScene #var weapon_current = load("res://scenes/stock_weapon.tscn") @@ -80,6 +81,7 @@ func shoot(): #if can_shoot: var bullet = weapon_current.instantiate() bullet.position = self.position + Vector2(0,-20) + previous_location = self.position.y 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 f1fbbc8..adeed9d 100644 --- a/scripts/stock_weapon.gd +++ b/scripts/stock_weapon.gd @@ -7,7 +7,16 @@ extends Area2D func _process(delta): - position += transform.y * (shot_data.speed + player.velocity.y) * delta #This works normally + #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 + + if travel > 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()