Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | mimboy |
Hello, newbie user here.
I’m trying to get my character to shoot from alternating positions (i.e the first projectile fires from the left while the second from the right) and the code seemed to be mostly working.
However, the projectile isn’t instanced. It just doesn’t appear. No errors are given.
extends Area2D
var cooldownReady = true
var alternatingFire = 'left'
onready var projectile = preload("res://scenes/Player/Fire/allyProjectile.tscn")
func _ready():
pass
func _process(delta):
if Input.is_action_pressed("ui_select") and cooldownReady == true:
print("Firing")
fireGun(alternatingFire)
elif Input.is_action_pressed("ui_select"):
print("On cooldown")
func fireGun(direction):
cooldownReady = false
$CooldownTimer.start()
var firedProjectile = projectile.instance()
if direction == 'left':
firedProjectile.position = $LeftGun.position
alternatingFire = 'right'
print("Now firing from the right")
elif direction == 'right':
firedProjectile.position = $RightGun.position
alternatingFire = 'left'
print("Now firing from the left")
add_child(projectile)
print("Fired")
func _on_CooldownTimer_timeout():
cooldownReady = true
print("Cooldown ready")
Here is the projectile in case there’s something wrong with it
extends Area2D
var velocity = Vector2(0, -1500)
var screensize
func _ready():
screensize = get_viewport_rect().size
print("I am created")
func _process(delta):
position += velocity * delta
if position.y < - 50:
print("Gone!")
queue_free()
func _on_allyProjectile_body_entered(body):
if body.is_in_group("enemyBody") or body.is_in_group("terrainBody"):
queue_free()