break the camera from its chains, and give it competition!

This commit is contained in:
Haze Weathers 2023-01-22 14:43:11 -05:00
parent d57194597e
commit 91df8e2e39
3 changed files with 36 additions and 20 deletions

View file

@ -1,33 +1,25 @@
extends Camera2D
onready var resolution = Game.resolution
onready var player = get_parent().get_node("Player")
onready var current_sector = (player.global_position / resolution).floor()
onready var last_sector = current_sector
onready var last_sector = Game.get_sector(player.position)
#Scroll direction
export var scroll_h = true
export var scroll_v = false
export var respawn_h = true
func _ready():
set_as_toplevel(true)
Game.current_sector = current_sector
Game.current_sector = last_sector
func _process(delta):
#Scroll screen when player is on different sector
current_sector = (player.global_position / resolution).floor()
var current_sector = Game.get_sector(player.position)
if scroll_h && current_sector.x != last_sector.x:
Game.respawn_point = player.global_position + Vector2(8,0) # Set respawn point
position.x = current_sector.x * resolution.x # Move camera
last_sector = current_sector
Game.current_sector = current_sector
position.x = current_sector.x * Game.resolution.x
if respawn_h:
var offset = Vector2(8.0 * sign(current_sector.x - last_sector.x), 0.0)
Game.respawn_point = player.global_position
last_sector.x = current_sector.x
if scroll_v && current_sector.y != last_sector.y:
Game.respawn_point = player.global_position + Vector2(0,-8) # Set respawn point
position.y = current_sector.y * resolution.y # Move camera
last_sector = current_sector
Game.current_sector = current_sector
##Delete enemies when offscreen
#func _on_CullArea_area_exited(area):
# #delete offscreen enemies
# if area.is_in_group("enemy"):
# area.get_parent().queue_free()
position.y = current_sector.y * Game.resolution.y
last_sector.y = current_sector.y
Game.current_sector = last_sector