You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
2.6 KiB

extends Node2D
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
var gravity_vector = ProjectSettings.get_setting("physics/2d/default_gravity_vector")
var player = load("res://scenes/pDasher.tscn")
#var level
var direction: int = 1
var paused: bool = false
var asp: AudioStreamPlayer
var switch_gravity_sound = preload("res://audio/switch_gravity.wav")
var win = preload("res://scenes/UI/Win.tscn").instantiate()
var end = preload("res://scenes/UI/End.tscn").instantiate()
#var level_n: int = 1
var pDasher
## WORLD METHODS
func switch_gravity():
gravity_vector = gravity_vector.rotated(deg_to_rad(180))
func switch_direction():
print("changing")
direction *= -1
## NAVIGATION
func player_fail():
get_tree().change_scene_to_file("res://scenes/UI/Start.tscn")
func player_win():
#level_n += 1
#load_level()
#$"." .hide()
#get_tree().get_root().add_child( win )
get_tree().change_scene_to_file("res://scenes/UI/Win.tscn")
func player_spawn():
pDasher.position = Vector2(0,0 )
#func load_level():
##if level_n == null:
##level_n = 0
#level = Levels[level_n]
func _ready():
#load_level()
asp = $AudioStreamPlayer
#load player and level
get_node("/root/World").add_child( player.instantiate() )
#get_node("/root/World").add_child( level.instantiate() ) #relative way meaning <ME> or whatever node this script is attached to.
# manage signals connections
var abysses = $Level/Abysses.get_children()
for abyss in abysses:
abyss.body_entered.connect( _on_abyss_body_entered )
var gravity_switches = $Level/Switches/Gravity.get_children()
for gswitch in gravity_switches:
gswitch.body_entered.connect( _on_gswitch_body_entered )
var direction_switches = $Level/Switches/Direction.get_children()
for dswitch in direction_switches:
dswitch.body_entered.connect( _on_dswitch_body_entered )
var checkpoints = $Level/Checkpoints.get_children()
for checkpoint in checkpoints:
#print( checkpoint )
checkpoint.body_entered.connect( _on_checkpoint_body_entered )
pDasher = get_node("/root/World/pDasher")
player_spawn()
## MAIN
#func _process(delta):
#pass
##SIGNAL HANDLING
func _on_abyss_body_entered(body):
#check that body is player
player_fail()
#print( str(body) + " se fue pal hoyo" )
func _on_gswitch_body_entered(body):
#check type of switch
#body.get_node("AnimationPlayer").spin()
asp.stream = switch_gravity_sound
asp.play()
switch_gravity()
func _on_dswitch_body_entered(body):
pDasher
pDasher.switch_direction()
func _on_checkpoint_body_entered(body):
body.direction = 0;
$Timer.start()
func _on_timeout():
player_win()