forked from team-sg/hero-mark-2
arrows now get deleted when offscreen
This commit is contained in:
parent
2d3fc72ebe
commit
b53c776021
4 changed files with 21 additions and 8 deletions
|
@ -1,12 +1,21 @@
|
|||
extends Node2D
|
||||
|
||||
onready var cull_edge = Vector2(5 * scale.x,0) #Edge to check culling, if this edge is offscreen, delete the arrow
|
||||
onready var player = get_parent().get_node("Player")
|
||||
onready var initial_sector = Game.get_sector(player.global_position)
|
||||
|
||||
func _ready():
|
||||
scale.x = get_parent().get_node("Player").sprite.scale.x
|
||||
#Flip depending on player facing
|
||||
scale.x = player.sprite.scale.x
|
||||
|
||||
func _physics_process(delta):
|
||||
#Move in flip direction
|
||||
position.x += 4 * scale.x
|
||||
#Delete when offscreen
|
||||
if Game.get_sector(global_position + cull_edge) != initial_sector:
|
||||
queue_free()
|
||||
|
||||
|
||||
#Wall Collision
|
||||
func _on_Area2D_body_entered(body):
|
||||
if body is TileMap or body is StaticBody2D:
|
||||
queue_free()
|
||||
|
|
|
@ -21,15 +21,9 @@ z_index = -1
|
|||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="." groups=["arrow"]]
|
||||
visible = false
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
position = Vector2( -0.5, -0.5 )
|
||||
shape = SubResource( 2 )
|
||||
|
||||
[node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="."]
|
||||
position = Vector2( -0.5, -0.5 )
|
||||
scale = Vector2( 0.55, 0.35 )
|
||||
|
||||
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]
|
||||
[connection signal="screen_exited" from="VisibilityNotifier2D" to="." method="_on_VisibilityNotifier2D_screen_exited"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue