diff --git a/2d/tween/main.gd b/2d/tween/main.gd index 8e45e5ed..d3654ab4 100644 --- a/2d/tween/main.gd +++ b/2d/tween/main.gd @@ -4,15 +4,13 @@ const trans_list = ["Linear", "Sine", "Quint", "Quart", "Quad", "Expo", "Elastic const eases_list = ["In", "Out", "InOut", "OutIn"] const modes_list = ["Move", "Color", "Scale", "Rotate", "Callback", "Follow", "Repeat", "Pause"] -var state = { - trans = Tween.TRANS_LINEAR, - eases = Tween.EASE_IN, -} +var current_trans = Tween.TRANS_LINEAR +var current_ease = Tween.EASE_IN onready var tween = $Tween -onready var trans = $Controls/Transitions -onready var eases = $Controls/Eases -onready var modes = $Controls/Modes +onready var trans_vbox = $Controls/Transitions +onready var eases_vbox = $Controls/Eases +onready var modes_vbox = $Controls/Modes onready var timeline = $Top/Timeline onready var color_from_picker = $Controls/ColorFrom/ColorPicker onready var color_to_picker = $Controls/ColorTo/ColorPicker @@ -22,70 +20,59 @@ onready var follow = $Top/Area/Follow onready var follow_2 = $Top/Area/Follow2 onready var size = $Top/Area.get_size() -onready var move_mode = modes.get_node(@"Move") -onready var color_mode = modes.get_node(@"Color") -onready var scale_mode = modes.get_node(@"Scale") -onready var rotate_mode = modes.get_node(@"Rotate") -onready var callback_mode = modes.get_node(@"Callback") -onready var follow_mode = modes.get_node(@"Follow") -onready var repeat_mode = modes.get_node(@"Repeat") -onready var paused_mode = modes.get_node(@"Pause") +onready var move_mode = modes_vbox.get_node(@"Move") +onready var color_mode = modes_vbox.get_node(@"Color") +onready var scale_mode = modes_vbox.get_node(@"Scale") +onready var rotate_mode = modes_vbox.get_node(@"Rotate") +onready var callback_mode = modes_vbox.get_node(@"Callback") +onready var follow_mode = modes_vbox.get_node(@"Follow") +onready var repeat_mode = modes_vbox.get_node(@"Repeat") +onready var paused_mode = modes_vbox.get_node(@"Pause") func _ready(): for index in range(trans_list.size()): - trans.get_node(trans_list[index]).connect("pressed", self, "on_trans_changed", [trans_list[index], index]) + trans_vbox.get_node(trans_list[index]).connect("pressed", self, "on_trans_changed", [index]) for index in range(eases_list.size()): - eases.get_node(eases_list[index]).connect("pressed", self, "on_eases_changed", [eases_list[index], index]) + eases_vbox.get_node(eases_list[index]).connect("pressed", self, "on_eases_changed", [index]) for index in range(modes_list.size()): - modes.get_node(modes_list[index]).connect("pressed", self, "on_modes_changed", [modes_list[index]]) + modes_vbox.get_node(modes_list[index]).connect("pressed", self, "on_modes_changed", [index]) color_from_picker.set_pick_color(Color.red) - color_from_picker.connect("color_changed", self, "on_color_changed") - color_to_picker.set_pick_color(Color.cyan) - color_to_picker.connect("color_changed", self, "on_color_changed") - for node in [trans, eases, modes]: + for node in [trans_vbox, eases_vbox, modes_vbox]: node.get_child(1).set_pressed(true) - modes.get_node(@"Repeat").set_pressed(true) + modes_vbox.get_node(@"Repeat").set_pressed(true) reset_tween() -func on_trans_changed(trans_name, index): - for index in range(trans_list.size()): - var pressed = trans_list[index] == trans_name - var btn = trans.get_node(trans_list[index]) +func on_trans_changed(index): + for i in range(trans_list.size()): + var btn = trans_vbox.get_node(trans_list[i]) + btn.set_pressed(i == index) - btn.set_pressed(pressed) - set_mouse_filter(Control.MOUSE_FILTER_IGNORE if pressed else Control.MOUSE_FILTER_PASS) - - state.trans = index + current_trans = index reset_tween() -func on_eases_changed(ease_name, index): - for index in range(eases_list.size()): - var pressed = eases_list[index] == ease_name - var btn = eases.get_node(eases_list[index]) +func on_eases_changed(index): + for i in range(eases_list.size()): + var btn = eases_vbox.get_node(eases_list[i]) + btn.set_pressed(i == index) - btn.set_pressed(pressed) - set_mouse_filter(Control.MOUSE_FILTER_IGNORE if pressed else Control.MOUSE_FILTER_PASS) - - state.eases = index + current_ease = index reset_tween() -func on_modes_changed(mode_name): - if mode_name == "pause": +func on_modes_changed(index): + if modes_list[index] == "Pause": if paused_mode.is_pressed(): tween.stop_all() - timeline.set_mouse_filter(Control.MOUSE_FILTER_PASS) else: tween.resume_all() - timeline.set_mouse_filter(Control.MOUSE_FILTER_IGNORE) else: reset_tween() @@ -100,24 +87,30 @@ func reset_tween(): tween.remove_all() if move_mode.is_pressed(): - tween.interpolate_method(sprite, "set_position", Vector2(0, 0), Vector2(size.x, size.y), 2, state.trans, state.eases) - tween.interpolate_property(sprite, "position", Vector2(size.x, size.y), Vector2(0, 0), 2, state.trans, state.eases, 2) + # The first line moves from the top left to the bottom right, while + # the second line moves backwards afterwards (there is a delay of 2). + # These are different (_method vs _property) only for the sake of + # showcasing interpolation of both methods and properties. + # The syntax is (object, method/property name, from value, to value, + # duration, transition type, ease type, delay), last 3 optional. + tween.interpolate_method(sprite, "set_position", Vector2.ZERO, size, 2, current_trans, current_ease) + tween.interpolate_property(sprite, "position", size, Vector2.ZERO, 2, current_trans, current_ease, 2) if color_mode.is_pressed(): - tween.interpolate_method(sprite, "set_modulate", color_from_picker.get_pick_color(), color_to_picker.get_pick_color(), 2, state.trans, state.eases) - tween.interpolate_property(sprite, "modulate", color_to_picker.get_pick_color(), color_from_picker.get_pick_color(), 2, state.trans, state.eases, 2) + tween.interpolate_method(sprite, "set_modulate", color_from_picker.get_pick_color(), color_to_picker.get_pick_color(), 2, current_trans, current_ease) + tween.interpolate_property(sprite, "modulate", color_to_picker.get_pick_color(), color_from_picker.get_pick_color(), 2, current_trans, current_ease, 2) else: sprite.set_modulate(Color.white) if scale_mode.is_pressed(): - tween.interpolate_method(sprite, "set_scale", Vector2(0.5, 0.5), Vector2(1.5, 1.5), 2, state.trans, state.eases) - tween.interpolate_property(sprite, "scale", Vector2(1.5, 1.5), Vector2(0.5, 0.5), 2, state.trans, state.eases, 2) + tween.interpolate_method(sprite, "set_scale", Vector2(0.5, 0.5), Vector2(1.5, 1.5), 2, current_trans, current_ease) + tween.interpolate_property(sprite, "scale", Vector2(1.5, 1.5), Vector2(0.5, 0.5), 2, current_trans, current_ease, 2) else: sprite.set_scale(Vector2.ONE) if rotate_mode.is_pressed(): - tween.interpolate_method(sprite, "set_rotation_degrees", 0, 360, 2, state.trans, state.eases) - tween.interpolate_property(sprite, "rotation_degrees", 360, 0, 2, state.trans, state.eases, 2) + tween.interpolate_method(sprite, "set_rotation_degrees", 0, 360, 2, current_trans, current_ease) + tween.interpolate_property(sprite, "rotation_degrees", 360, 0, 2, current_trans, current_ease, 2) if callback_mode.is_pressed(): tween.interpolate_callback(self, 0.5, "on_callback", "0.5 seconds after") @@ -127,11 +120,11 @@ func reset_tween(): follow.show() follow_2.show() - tween.follow_method(follow, "set_position", Vector2(0, size.y), sprite, "get_position", 2, state.trans, state.eases) - tween.targeting_method(follow, "set_position", sprite, "get_position", Vector2(0, size.y), 2, state.trans, state.eases, 2) + tween.follow_method(follow, "set_position", Vector2(0, size.y), sprite, "get_position", 2, current_trans, current_ease) + tween.targeting_method(follow, "set_position", sprite, "get_position", Vector2(0, size.y), 2, current_trans, current_ease, 2) - tween.targeting_property(follow_2, "position", sprite, "position", Vector2(size.x, 0), 2, state.trans, state.eases) - tween.follow_property(follow_2, "position", Vector2(size.x, 0), sprite, "position", 2, state.trans, state.eases, 2) + tween.targeting_property(follow_2, "position", sprite, "position", Vector2(size.x, 0), 2, current_trans, current_ease) + tween.follow_property(follow_2, "position", Vector2(size.x, 0), sprite, "position", 2, current_trans, current_ease, 2) else: follow.hide() follow_2.hide() @@ -142,9 +135,6 @@ func reset_tween(): if paused_mode.is_pressed(): tween.stop_all() - timeline.set_value(0) - else: - tween.resume_all() func _on_Tween_tween_step(_object, _key, elapsed, _value): diff --git a/3d/README.md b/3d/README.md index 26044664..ec2929ba 100644 --- a/3d/README.md +++ b/3d/README.md @@ -4,4 +4,4 @@ These demos are all 3D, but otherwise do not have a common theme. Languages: All are GDScript -Renderers: Truck Town and Physics Tests are GLES 2, the rest are GLES 3 +Renderers: Truck Town, Physics Tests, and Waypoints are GLES 2, the rest are GLES 3 diff --git a/3d/ik/fps/example_player.gd b/3d/ik/fps/example_player.gd index 5e6eb1e1..2f64c885 100644 --- a/3d/ik/fps/example_player.gd +++ b/3d/ik/fps/example_player.gd @@ -209,7 +209,7 @@ func process_movement(delta): # Mouse based camera movement func _input(event): - if event is InputEventMouseMotion && Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED: + if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED: rotate_y(deg2rad(event.relative.x * MOUSE_SENSITIVITY * -1)) camera_holder.rotate_x(deg2rad(event.relative.y * MOUSE_SENSITIVITY)) diff --git a/loading/multiple_threads_loading/resource_queue.gd b/loading/multiple_threads_loading/resource_queue.gd index 896de4fb..bb0a728b 100644 --- a/loading/multiple_threads_loading/resource_queue.gd +++ b/loading/multiple_threads_loading/resource_queue.gd @@ -84,7 +84,7 @@ func _wait_for_resource(res, path): VisualServer.sync() OS.delay_usec(16000) # Wait approximately 1 frame. _lock("wait_for_resource") - if queue.size() == 0 || queue[0] != res: + if queue.size() == 0 or queue[0] != res: return pending[path] _unlock("wait_for_resource") @@ -123,7 +123,7 @@ func thread_process(): var ret = res.poll() _lock("process_check_queue") - if ret == ERR_FILE_EOF || ret != OK: + if ret == ERR_FILE_EOF or ret != OK: var path = res.get_meta("path") if path in pending: # Else, it was already retrieved. pending[res.get_meta("path")] = res.get_resource() diff --git a/misc/2.5d/assets/player/player_math_25d.gd b/misc/2.5d/assets/player/player_math_25d.gd index e41df726..f650e2d1 100644 --- a/misc/2.5d/assets/player/player_math_25d.gd +++ b/misc/2.5d/assets/player/player_math_25d.gd @@ -30,7 +30,7 @@ func _horizontal_movement(delta): var localX = Vector3.RIGHT var localZ = Vector3.BACK - if isometric_controls && is_equal_approx(Node25D.SCALE * 0.86602540378, _parent_node25d.get_basis()[0].x): + if isometric_controls and is_equal_approx(Node25D.SCALE * 0.86602540378, _parent_node25d.get_basis()[0].x): localX = Vector3(0.70710678118, 0, -0.70710678118) localZ = Vector3(0.70710678118, 0, 0.70710678118) diff --git a/misc/2.5d/assets/player/player_sprite.gd b/misc/2.5d/assets/player/player_sprite.gd index 238b703c..bab9c1b3 100644 --- a/misc/2.5d/assets/player/player_sprite.gd +++ b/misc/2.5d/assets/player/player_sprite.gd @@ -102,7 +102,7 @@ func _check_movement() -> bool: # Check for isometric controls and add more to movement accordingly. # For efficiency, only check the X axis since this X axis value isn't used anywhere else. - if !_parent_math.isometric_controls && is_equal_approx(Node25D.SCALE * 0.86602540378, _parent_node25d.get_basis()[0].x): + if !_parent_math.isometric_controls and is_equal_approx(Node25D.SCALE * 0.86602540378, _parent_node25d.get_basis()[0].x): if Input.is_action_pressed("move_right"): z += 1 if Input.is_action_pressed("move_left"): diff --git a/mobile/multitouch_cubes/GestureArea.gd b/mobile/multitouch_cubes/GestureArea.gd index 01479321..8d350229 100644 --- a/mobile/multitouch_cubes/GestureArea.gd +++ b/mobile/multitouch_cubes/GestureArea.gd @@ -24,8 +24,8 @@ func _ready(): func _gui_input(event): # We must start touching inside, but we can drag or unpress outside. -# if !(event is InputEventScreenDrag || -# (event is InputEventScreenTouch && (!event.pressed || get_global_rect().has_point(event.position)))): +# if !(event is InputEventScreenDrag or +# (event is InputEventScreenTouch and (!event.pressed or get_global_rect().has_point(event.position)))): # return var finger_count = base_state.size() @@ -75,7 +75,7 @@ func _gui_input(event): # Two fingers => To pinch-zoom and rotate around Z. # Accept unpress or drag. if event is InputEventScreenTouch: - if !event.pressed && base_state.has(event.index): + if !event.pressed and base_state.has(event.index): # Some known touching finger released. # Remove released finger from the base state.