Compare commits

..

No commits in common. "c1b01d2cacb2a01da83ac9bf47d3cc9fc328182e" and "8c83919525f959ff61e15d53d52c7e9614aa47a6" have entirely different histories.

2 changed files with 16 additions and 11 deletions

14
main.gd
View file

@ -26,7 +26,8 @@ var levels: Array[PackedScene] = [
var time := 0: var time := 0:
set(new_time): set(new_time):
var tween := get_tree().create_tween() var tween := get_tree().create_tween()
tween.tween_property($Sun, "rotation_degrees:y", -15*new_time, 0.1) var anim_time = 1.0 if slowmo() else 0.1
tween.tween_property($Sun, "rotation_degrees:y", -15*new_time, anim_time)
time = new_time time = new_time
var advancing := false var advancing := false
@ -35,8 +36,6 @@ var advancing := false
@onready var sounds_undo := audio_stream_randomizer_from_dir("res://sfx/undo") @onready var sounds_undo := audio_stream_randomizer_from_dir("res://sfx/undo")
@onready var sounds_redo := audio_stream_randomizer_from_dir("res://sfx/redo") @onready var sounds_redo := audio_stream_randomizer_from_dir("res://sfx/redo")
@export_range(0, 1) var slowmo_speed := 0.1
func _ready() -> void: func _ready() -> void:
advance_level() advance_level()
@ -45,11 +44,7 @@ func _process(delta: float) -> void:
$RedoButton.disabled = not hist.has_redo() $RedoButton.disabled = not hist.has_redo()
$RestartButton.disabled = not hist.has_undo() $RestartButton.disabled = not hist.has_undo()
$Clock.text = "T = %d" % time $Clock.text = "T = %d" % time
var slowmo := Input.is_action_pressed("slowmo"); $SlowmoIndicator.text = "slowmo" if slowmo() else ""
$SlowmoIndicator.text = "slowmo" if slowmo else ""
Engine.time_scale = slowmo_speed if slowmo else 1.0
# TODO: this is kinda comically slow BUT STOP WORKING ON THE GAME
AudioServer.playback_speed_scale = slowmo_speed if slowmo else 1.0
if not $TopLeft.is_on_screen() or not $BottomRight.is_on_screen(): if not $TopLeft.is_on_screen() or not $BottomRight.is_on_screen():
camera.position.y += 10*delta camera.position.y += 10*delta
@ -179,3 +174,6 @@ func audio_stream_randomizer_from_dir(dir: String) -> AudioStreamRandomizer:
stream.add_stream(-1, load(dir+"/"+file_name)) stream.add_stream(-1, load(dir+"/"+file_name))
file_name = hit_dir.get_next() file_name = hit_dir.get_next()
return stream return stream
func slowmo() -> bool:
return Input.is_action_pressed("slowmo")

View file

@ -16,10 +16,17 @@ enum Type {
} }
## squares per second ## squares per second
@export_range(0.0, 1, 0.01) var anim_time := 0.1 @export_range(0.1, 50) var anim_speed_normal := 10.0
@export_range(0.1, 50) var anim_speed_slow := 1.0
var tweens: Array[Tween] = [] var tweens: Array[Tween] = []
func anim_speed() -> float:
return anim_speed_slow if Input.is_action_pressed("slowmo") else anim_speed_normal
func anim_time() -> float:
return 1/anim_speed()
#TODO: {un,}do_bump animation method (good visual clarity) #TODO: {un,}do_bump animation method (good visual clarity)
func pos_of_lpos(pos: Vector2i, y := 0.0) -> Vector3: func pos_of_lpos(pos: Vector2i, y := 0.0) -> Vector3:
@ -29,7 +36,7 @@ func target_pos() -> Vector3:
return pos_of_lpos(lpos, position.y) + Vector3(0.5, 0, 0.5) return pos_of_lpos(lpos, position.y) + Vector3(0.5, 0, 0.5)
func tween_to_target(tween := create_tween()): func tween_to_target(tween := create_tween()):
tween.tween_property(self, "position", target_pos(), anim_time) tween.tween_property(self, "position", target_pos(), anim_time())
tweens.push_back(tween) tweens.push_back(tween)
func lpos_of_pos(pos: Vector3) -> Vector2i: func lpos_of_pos(pos: Vector3) -> Vector2i:
@ -114,7 +121,7 @@ func do_bump(move: Vector2i, old_lvel := lvel) -> Callable:
return func(): return func():
lvel_displayed = old_lvel lvel_displayed = old_lvel
var tween := create_tween() var tween := create_tween()
tween.tween_property(self, "position", target_pos() + pos_of_lpos(move)/2, anim_time/2) tween.tween_property(self, "position", target_pos() + pos_of_lpos(move)/2, anim_time()/2)
tween.tween_callback(func(): lvel_displayed = lvel) tween.tween_callback(func(): lvel_displayed = lvel)
tween_to_target(tween) tween_to_target(tween)
tweens.push_back(tween) tweens.push_back(tween)