Diffstat (limited to 'dots/dot.gd')
| -rw-r--r-- | dots/dot.gd | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/dots/dot.gd b/dots/dot.gd index 7383686..5a5066e 100644 --- a/dots/dot.gd +++ b/dots/dot.gd @@ -1,10 +1,8 @@ extends Area2D class_name dot -var dotCollider = preload("res://dots/dot_extras/dotcollider.tscn" ) - -onready var dotcollider : CollisionShape2D -onready var ray : RayCast2D +onready var dotcollider : CollisionShape2D = $dotcollider +onready var ray : RayCast2D = $dotray var tween = Tween.new() @@ -13,39 +11,26 @@ export(GlobalVars.type) var dot_type func _ready(): Events.connect("level_initialized", self, "move") Events.connect("turn_over", self, "move") - add_collider() add_child(tween) -func add_collider(): - var new_dotcollider = dotCollider.instance() - add_child(new_dotcollider) - dotcollider = new_dotcollider - ray = dotcollider.get_ray() - dotcollider.move_ray($dotsprite/pos.global_position) - func move(): - if ! GlobalVars.state == GlobalVars.states.level_turn: - return - var go_to = extend_ray_until_collides() + var go_to = get_collision_point() + print(go_to) tween.interpolate_property(self, "global_position", global_position, go_to, 2, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT) tween.start() Events.emit_signal("done_moving") -func extend_ray_until_collides() -> Vector2: - for i in get_viewport_rect().size.y: - if not ray.is_colliding(): - ray.cast_to.y += 1 - ray.force_raycast_update() - var size = ray.cast_to.y - ray.cast_to = Vector2.ZERO - print(ray.get_collider()) - print(global_position.x, global_position.y + size) - return Vector2(global_position.x, global_position.y + size) +func get_collision_point() -> Vector2: + ray.enabled = true + ray.force_raycast_update() + ray.enabled = false + return ray.get_collision_point() func turn_off_collision(): dotcollider.disabled = true +# warning-ignore-all:unused_argument func _on_dot_input(viewport, event : InputEvent, shape_idx): InputHandler._pressed(event, self) |