diff --git a/game.gd b/game.gd index 3334cde..fd8037a 100644 --- a/game.gd +++ b/game.gd @@ -28,15 +28,21 @@ onready var a_shoot = preload("res://audio/sounds/a_egg_shoot.ogg") #Objects onready var block_text = preload("res://objects/hud/blocktext.tscn") +#Instances a node func instance_node(node:PackedScene,x:float,y:float,parent): var Instance = node.instance() Instance.global_position = Vector2(x,y) parent.add_child(Instance) +#Plays a sound func play_sound(snd,player): player.set_stream(snd) player._set_playing(true) +#Get position in sectors +func get_sector(pos): + return (pos / resolution).floor() + func _process(delta): #Restart scene if Input.is_action_just_pressed("debug_restart"): diff --git a/maps/map01.tscn b/maps/map01.tscn index e18fd80..34c7a7c 100644 --- a/maps/map01.tscn +++ b/maps/map01.tscn @@ -152,6 +152,10 @@ scale = Vector2( -1, 1 ) position = Vector2( 232, 168 ) scale = Vector2( -1, 1 ) +[node name="Slime4" parent="Enemies" instance=ExtResource( 11 )] +position = Vector2( 264, 168 ) +scale = Vector2( -1, 1 ) + [node name="Bat" parent="Enemies" instance=ExtResource( 13 )] position = Vector2( 104, 48 ) left_up_boundry = 3.0 diff --git a/objects/player/arrow_projectile.gd b/objects/player/arrow_projectile.gd index 61784f4..ce9837a 100644 --- a/objects/player/arrow_projectile.gd +++ b/objects/player/arrow_projectile.gd @@ -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() diff --git a/objects/player/arrow_projectile.tscn b/objects/player/arrow_projectile.tscn index b57c1b9..99d5e29 100644 --- a/objects/player/arrow_projectile.tscn +++ b/objects/player/arrow_projectile.tscn @@ -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"]